【vim】こりゃあ便利だと感極まったvimrcに関するあれこれ

とりとめのない設定変更において魂の震えたコマンドや設定の記録


    Vimでgrepする
    :vimgrep /検索文字/ *.txt |cw


    強調表示を解除
    :noh

    検索パターンに大文字が含まれている場合は区別して検索する
    :set smartcase


    画面をただちに再描画する。
    :redraw
    !を付けたときは、画面を消去してから再描画します。
    :redraw!

    ファイルを開くときにウィンドウサイズを指定する
    :30sp .vimrc

    ウインドウの数を得る
    winnr("%")

    ウィンドウを右側に展開する
    :rightb vs .vimrc

    ウィンドウの開閉時にサイズを保つ
    :set winfixheight(wfh) "縦幅
    :set winfixwidth (wfw) "横幅


    複数行をまとめてコメントアウトする
    vmap # <c-V>0I#<esc>
    vmap C :s/^#//<cr>
    vmap // <C-V>0I//<Esc>
    vmap c :s/^////<CR>:noh<cr>K

    日本語の行の連結時には空白を入力しない
    :set formatoptions=Mm

    相対的な行番号と絶対的な行番号をトグル
    nnoremap  <silent> ;h :<C-u>ToggleNumber<CR>
    command! -nargs=0 ToggleNumber call ToggleNumberOption()
    function! ToggleNumberOption()
         if&number
            set relativenumber
         else
            set number
         endif
    endfunction

    カーソルの桁番号を得る
    col(".")
    行番号はline(".")



    タブラベルを常に表示する
    :set showtabline=2
    タブページのラベルを表示するかを指定する。
         1:表示しない
         2:2個以上のタブページがあるときのみ表示
         3:常に表示

    カレントタブ以外のすべてのタブを閉じる。
    :tabo

    右端のタブとしてファイルを開く
    :tabm|tabnew .vimrc


    コマンドラインからノーマルモードのコマンドを実行する。
    :normal j
    :executeを使って制御文字を入力することもできる。
    :exe "normal <c-w><c-w>"


    一時ファイルを作って開く
    tempname()
    存在しないファイルのファイル名を少なくとも連続26回の
    呼出しまでは違う名前で生成する
    :let tmpfile = tempname()

    ファイルに追記
    :execute ":redir! >> " . filename
         :silent! echon l:words."n"
    :redir END

    readしたときにファイルの一行目から書き込む
    :0r filename

    カレントファイル名を得る
    expand("%")


    netrwを常にツリー表示する
    :let g:netrw_liststyle = 3

    netrwでCVSと.で始まるファイルは表示しない
    :let g:netrw_list_hide = 'CVS,(^|ss)zs.S '


    候補をポップアップする(インサートモード補完時)
    :call complete(col('.'),['matumoto','hamada'])
    候補のリストに要素を追加する。
    :call complete_add("takasu")

    ポップアップ中のキーマッピング
    inoremap <expr> u pumvisible() ? "<c-p>" : "u"
    ポップアップメニューが表示されているときには非0を返し、
    表示されていないときは0を返す。pumvisible()関数を用いて実現。


    Webページを表示する(w3m必須)
    :!w3m -dump -cols 80 hoge.html > hoge.txt

    *via:w3m テキストブラウザ 


    スクロールの同期
    :set scrollbind
    カレントウィンドウは他のスクロール同調中ウィンドウと同じだけスクロールする。

    テキストを水平にスクロールする。
    zs "カーソルのある位置がスクリーンの始まり(左側)に来る
    ze "カーソルのある位置がスクリーンの終わり(右側)に来る


    split()で区切り文字を削除せず、そのままにしておきたい場合は、'zs'
    for c in split(mystring, 'zs')

    ヴィジュアルモードの選択範囲を繰り返す
    関数に引数[range]を追加した場合、関数は「範囲」を管理することができる。
    function Funcname() range
         for line_no in range(a:firstline, a:lastline)
            if line =~ 'Date' | echo line | endif
         endfor
    endfunction


    一旦停止
    :sleep      "1秒スリープ
    :5sleep     "5秒スリープ
    :sleep 100m "100ミリ秒スリープ

    IMEを自動で無効にする(Windows)
    :let&t_SI.="e[<r"
    :let&t_EI.="e[<se[<0t"
    :let&t_te.="e[<0te[<s"

    強調表示        
    :call matchadd("Search", foo)