Vim経験とテクニック

7238 ワード

vimの大文字と小文字を変換するコマンドは
guまたはgUのイメージを説明すると、uさんは小文字になることを意味します.大Uは大文字になることを意味する.
参考:http://vim.wikia.com/wiki/Accessing_the_system_clipboard
set clipboard=unnamedplus
Vimのデフォルトのクリップボードをシステムクリップボードに設定します.
教程
  • WimwikiでWikipedia世界
  • を作ります.
  • 自動同期あなたのvimwikiはオンラインサイト
  • に行きます.
    準備工作
    まずあなたのvimrcに変数を定義してください.例えばWindowsでは、Vimインストールディレクトリのvimfilesディレクトリにvimfilesを置いていますが、他のオペレーティングシステムは、ユーザホームディレクトリの.vimディレクトリの下に置かれています.
    if has("win32")
        let $VIMFILES = $VIM.'/vimfiles'
        let $V = $VIM.'/_vimrc'
    else
        let $VIMFILES = $HOME.'/.vim'
        let $V = $HOME.'/.vimrc'
    endif
    
    知っていますか
    Vim 7.3の耐久取消し
    Vim 7.3は、ファイルが閉じられていても、再度開いても、ファイルが閉じられている前の編集履歴をキャンセルできます.この機能を使うには、vimrcに追加します.
    "           persistent undo 
    set undofile
    set undodir=$VIMFILES/\_undodir
    set undolevels=1000 "maximum number of changes that can be undone
    
    set undofile-本機能を開きます.オープン後はデフォルトでファイルの現在のディレクトリの下にfilename.ext.un~のファイルを作成します.もちろん私たちに迷惑をかけます.したがって、undodirをセットして、undofileを全部置く.
    $VIMFILES/\uundodir-VIMFILEは、私たちが以前にvimrcで定義した環境変数であり、windowsではVIM/vimfiles/です.他のディレクトリと区別するために、undodirの前に下線があります.undodir下線があるので、前のバックスラッシュも欠かせません.そしてこのディレクトリは自分で手動で作成しなければなりません.存在しないなら、Vimは自動的に作成してくれません.
    震えて!IDE
    編集状態の保存
    ほとんどのIDEはファイルが閉じる前の状態を記録する機能を提供しています.個別的に総合的に考えて、ソフトウェアが閉じる前にどのようなファイルが開いていたかを覚えています.これらの機能はVimでもできます.
    ファイルの状態を記録する(ファイルと独立したキーボードマッピング、コードの折りたたみ状態などを含む):
    autocmd BufWinLeave * if expand('%') != '' && &buftype == '' | mkview | endif
    autocmd BufRead     * if expand('%') != '' && &buftype == '' | silent loadview | syntax on | endif
    
    これらのif判定は、新規ファイルのバッファに入るとファイル名が存在しないエラーが発生することを避けるためです.
    パラメータが空の場合、Vimが閉じられている状態を記録/ロードします.
    普通は上のコードで十分です.最大の欠点は、長い時間がかかります.VIMFILES/viewディレクトリの下には多くのゴミファイルがあります.一部のファイルは一生開けないかもしれませんが、状態ファイルはまだあります.古いファイルを削除したシナリオを書いてもいいです.Linuxではこのようにしています.
    function! RemoveOldViewFiles
        exe 'find '.$VIMFILES.'/view* -mtime +90 -exec rm {} \;'
    endfunction
    nmap <leader>.cl :call RemoveOldViewFiles<cr>
    
    90日前のファイルを削除します.
    「ワークエリアの復旧」のような機能は、セッションファイルによって実現されます.
    あなたのvimrcを編集します.
    " Session files Vim         
    set sessionoptions+=unix
    set sessionoptions-=blank
    "set sessionoptions-=options
    autocmd VimEnter * call LoadSession()
    autocmd VimLeave * call MakeSession() 
    
    function! MakeSession()
        if !has('gui_running')
            hi clear
        endif
        if bufname('')  == ''
            exe 'bdelete '.bufnr('')
        endif
        let l:count = 0
        let l:i = 0
        while l:i <= bufnr('$')
            if buflisted(count)
                let l:count += 1
            endif
            let l:i+=1
        endwhile
        if l:count >= 4
            mksession! ~/.last_session.vim
        endif
    endfunction
    
    function! LoadSession()
        "if exists('g:SessionLoaded')
        "return
        "endif
        if expand('%') == '' && filereadable($HOME.'/.last_session.vim') && !&diff
            silent so ~/.last_session.vim
        endif
    
        let l:buftotal = bufnr('$')
        let l:i = 0
        let l:crtpath = getcwd() 
        while l:i <= l:buftotal
            "         buffer,          ,    
            if !bufloaded(l:i) && buflisted(l:i) && expand('%:p') !~ l:crtpath
                exe 'bdelete '.l:i
                echo expand('%:p') .' !~ '. l:crtpath
            endif
            let l:i += 1
        endwhile
    endfunction
    
    このコードは読みやすいはずです.説明しません.何か問題がありましたら、メッセージをください.
    紹介Vimの一括検索置換
    1.vimgrepコマンド試用:vimgrep word *は、現在のディレクトリの任意のファイルの下で「word」を検索し、quickfixリストを生成することができる.試用:clは、すべてのマッチング結果を見ることができる.:cnを使用して、次の:cpを使用して、前の方に行く.:vimgrep /pattern/gj *.phpを使用して、現在のディレクトリのphpファイルの中で検索モードのpatternを押して検索することができます.フラグビットgは、マッチするたびにマッチ結果のリストを追加することを表します.そうでないと、各ラインに一回だけマッチします.フラグビットjは、quickfixリストのみを更新することを表し、そうでなければ、vimは最初のマッチにジャンプします.
    もっと説明してください.:h vimgrepまたはここに注文してください.
    2.argmentsパラメータリストのパラメータリストが一連のファイルリストです.上にリンクされている文章はもう紹介されています.詳しくは話しません.
    VimでJSLintを有効にします.
    明爺(gracecode.com)はVimでJSLintを使う方法を紹介しました.彼はこの文章を書く時まだ誕生していません.今日紹介するプラグイン:jslint.vim.
    このプラグインはとても使いやすいことが証明されました.でも、最初に取り付けるには工夫が必要です.LinuxではREADMEの説明によると、問題にならないはずです.Windowsでの注意事項を説明します.
    1.このプラグインはシステムユーザディレクトリ($HOME)にのみ装着できます.つまり、:cd ~が行ったディレクトリをVimで実行します.(Win 7の下はC:\Users\Username)
    上記の制限を突破するには、ftplugin/javascript/jslint.vim第16行定義install_を修正します.dirの部分:
    if has("win32")
    	let s:install_dir = '"' . expand($VIMFILES."/ftplugin/javascript") . '"'
    else
    
    2.中国語のJSファイルを持っている場合、行の位置決めが間違っている問題が発生しやすいです.原因は明さんの文章と同じです.私たちは同じキーにiconvを追加して文字を回転すればいいです.
    定義b:jslint_outputを修正するところ:
    let b:jsleint_out put=system(s:cmd,iconv(jolintrc+getline(b:firstline,b:lastline),「」.「」,&enc,gbk)
    こんな簡単な問題で二時間も苦労しました.前は改行と思っていました.えっと、
    Google Close Linterを試してみます.
    JSLintデフォルトのルールは、jQueryなど、いくつかのJSLintの誤りを無視する場合があります.Googleのコードスタイルに基づいて、*Cloure Linter*があります.Vimに集めてみます.
    上のVimプラグインを修正しましたが、必要なものはここをクリックしてダウンロードできます.
    gjslent唯一の残念なことに、「文字数が多すぎる」という制限は厳しすぎます.私たちのスクリーンユーザーにとって、80文字はまだまだ足りません.しばらく解決策が見つからない.
    Vim Tips
    プラグインと設定
  • は、Vimwikiで%titleでカスタム出力されたHTMLのtitleを使用できますが、ファイルの最後尾に書いたほうがいいです.でないと、%toc(自動ディレクトリ)を同時に使用すると、入れ子エラーが発生します.このバグは将来修正されるかもしれませんが、習慣を保つのは間違いないです.
  • 把_vimrcとvimfilesは、msysgitのインストールディレクトリに拷問し(C:\Program Files\Git\share\vim)、Git Bashのvimもあなたの通常の操作習慣に適合させることができます.
  • NERDree Explorerに星番号が付いているファイルはこのファイルを表しています.実行可能ファイル
  • です.
  • 新しいプラグインをインストールした後、プラグインがヘルプドキュメント(help doc)を提供する場合、ヘルプファイルインデックスを再構築する必要があります.コマンドは以下の通りです.
    編集
  • は普通のモード以外に、テレビモード、挿入モードを知っていますか?通常のエディタでInsertキーを押すと切り替わるように、入力されたテキストはカーソルの下の文字を単語ごとに置き換えられます.
  • は、Vim内で行に沿ってマッチングするために、行ブレークを含む任意の文字を\_.でマッチングすることができる.
  • は、\{-}を使用して、一般的なperl正則のような?の役割の怠惰マッチングを可能にし、前のマッチング元にできるだけ少ないマッチングを実現する.
  • :sコマンドを使用すると、フラグビットeを追加することは、関数またはキーボードマッピングコマンドにおいて非常に有用です.例えば、以下のコードはCSSをフォーマットすることができます.(完璧ではありませんが)mapcss:%s/\s*([a-z***}///\]r\1/ge:%s/\(\\w\)\s*\(\\\\r]/\1\\r\2/ge:%s//\\1/ge/(\\s\\r/)/\1/\
  • :sコマンドが残っています.普通は/でセパレータをするのが好きです.実は、このバーは任意の文字が使えます.HTMLコードにマッチする場合は、セミコロン(;)を使用することができます.このようにすると、いつもバックスラッシュでHTMLの中のバーを切り替える必要があります.:'、''s;span>\(.*);\1;g
  • 上のコードは選択領域の「span」タブを削除することができます.
    知らないかもしれませんが、ショートカットキーを編集します.gvが選択した前に選択した内容はg~{motion}によって、「motion」が横切ったテキストの大文字g~~を切り替えて、現在の行の大文字gU{motion}を大文字gu{motion}に切り替えて小文字に切り替えます.
    誤ってsudoの権限が必要なファイルを開けましたが、大半を編集してやっと発見しました.次の命令は緊急を救うことができます.
    :wスドtee%
    コマンドマップを作成して、静かに保存することもできます.
    command Wsudo tee%>/dev/null
    Vim Scriptを使う
  • は、現在のブザーの総行数の関数を取得する.line("$")
  • サイレント実行shell::silent !cmd