Vim Short Tips Advent Calendar とは
Qiitaアドベントカレンダーの1つで、「ツイート1つに収まるようなVimのTipsを書いていく」がテーマのカレンダー。ハッシュタグ#vimtips_ac
でTwitterを検索すれば出てくる。
結構知らなかったことやめっちゃ便利じゃんってものがあったので紹介したい。
Vimのマーク機能を使って最速ジャンプ
twitter.com行にマークする時に mm って打つと 最速でmが設定される。
— furu8ma (@furu8ma) 2019年12月23日
その後どこいっても'm で戻ってこれる。
そんだけだけど、結構使う。#vimtips_ac
" 現在位置をマーク mm " マークした位置にジャンプ 'm
<C-p>でコマンドライン履歴を前方一致で辿る
twitter.comコマンドラインモードで <C-p> を使うとコマンドライン履歴を辿ることができますが、<Up> を使うとすでに入力中の部分の前方一致で履歴を辿ることができます。例えば、:Qu<Up> とすると :QuickRun のような :Qu で始まる履歴のみを辿れます。:cnoremap <C-p> <Up> しておくと便利です。 #vimtips_ac
— thinca (@thinca) 2020年11月30日
" ctrl-pでコマンド履歴を入力中の文字で遡る cnoremap <C-p> <Up>
コマンドの繰り返し実行は@:からの@@
twitter.comVimで直前の : コマンドを繰り返したいときはノーマルモードで @: と打つと直前のコマンドを再実行できます。さらにもう一度実行したい場合には @@ で繰り返すことができます。
— K.Takata (@k_takata) 2020年12月12日
例えば、vim *.txt でファイルを開いて :n<CR> @: @@ @@ で次々にファイルの中身を確認することができます。#vimtips_ac
:コマンド実行 " 先程のコマンドを実行 @: " 以降@@で繰り返し実行可能 @@
カーソル位置を固定してスクロール
twitter.comset scrolloff=3 というオプションで、画面の端 3行を表示したまま、上下にスクロールできます。
— Yoshio Sugiyama (@imokurity) 2020年12月17日
このオプションの数字をとても大きくすると、常にカーソルが中央にある状態で、スクロールできます。#vimtips_ac
:set scrolloff=3
貼り付け先のインデントに合わせて貼り付ける
twitter.comVim で貼り付けは p ですが、]p を使うと、貼り付ける内容のインデントを貼り付け先のインデントに合わせて調整した上で貼り付けてくれます。貼り付けた後にインデントの再調整をしなくて済むので便利です。#vimtips_ac
— thinca (@thinca) 2019年11月30日
]p
貼り付けたテキストを選択
確かVimテクニックバイブルに載っていた
— YAMAMOTO Yuji: 山本悠滋 (@igrep) December 4, 2019
"pで貼り付けたテキストの選択
nnoremap <expr> gp '`[' . strpart(getregtype(), 0, 1) . '`]'
と併せて pgp= などと打ってましたけど、標準でできたんですね!すばらしい!
"pで貼り付けたテキストの選択 nnoremap <expr> gp '`[' . strpart(getregtype(), 0, 1) . '`]'
終わり
完全に知らなかったことから、ああこれは思いつかなかったな〜というものまでたくさんのTipsがありました。「ツイートに収まるぐらいのTips」っていうのがまたいいですね、気軽に試したくなる。