2024年08月04日 vimmer vim エディタ |
五臓六腑を震わせるrc備忘録
●vimgrep
: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で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()で区切り文字を残す
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ミリ秒スリープ
●強調表示
:call matchadd("Search", "発光文字")
●IMEを自動で無効にする(Windows)
:let&t_SI.="e[<r"
:let&t_EI.="e[<se[<0t"
:let&t_te.="e[<0te[<s"
●笑顔
:smile
\ 10時〜20時 土日も対応可 /