Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vimのmapleaderの復習

$
0
0
let mapleader="\<Space>"
nnoremap <Leader>code :!code %:p<CR>

「あ、こいつ勝てないな(vimじゃ)」って思ったらVSCodeを召喚する

final_5e3d7fda5d688f001593c692_798986.gif

という事もできる。昔、私はこういうvimrcをしていましたが、最近は超ダイエットしました(dotfiles)。コマンドに慣れたらvimは最低限でいいよなーとか、VSCodeのsshfsはPluginもSnippetsも全部生きたままリモートで開発できるしVSCodeに移行しました。で、色々最低限にする内にmapleaderだけは多用してたので復習がてら。

mapleaderについての復習

mapleaderはvim操作を劇的に早くしてくれる設定です。 [mapleaderに指定したキー]+[mapで指定した任意のキー]を押せば、どんな長くて覚えづらいコマンドもすぐ呼び出せます。

例1: 覚えられないけど便利なコマンドを簡単に呼び出す例

これは何をやってるでしょう?
nnoremap <Leader>" viw<esc>a"<esc>bi"<esc>lel

こういう覚えづらいけど便利なコマンドも一撃で呼べるようになります。Space + "で、カーソル上の単語を""で囲んでくれるコマンドです。勿論<p>で囲むようにhtmlタグも使えます。囲むタグを任意で入れる形(次の例のように関数化&input式)にすれば自作Surround.vimになりますね。Surround.vimの使い勝手にしっくり来ない場合はこうして自作できます。
ダウンロード.png

例2: 長い処理を関数化して、一発で呼び出す例

その他例(上級)
letg:fzf_layout={'right':'~50%'}function! Rg()let string = input('Search String: ')call fzf#run(fzf#wrap({        \'source':'rg -lin '. string,        \'options':'--preview-window bottom:50% --preview "rg -in '. string .' {}"'}))endfunction

nnoremap <Leader>rg :call Rg()<CR>

function化してそれをmapleaderで呼び出す事もできます。こちらは自作コマンドでSpace+rgでripgrepを召喚します。vim-fzfの組込コマンドが個人的にパッと来ないのでpreviewなどつけてSpaceで召喚できるようにしました。

例3: ターミナルコマンドを一発で呼び出す例

その他例(中級)
nnoremap <Leader>code :!code %:p<CR>

冒頭のコマンドです。vimは:!の後にターミナルコマンドを続ける事ができます。そして、今回codeの後に続けてる%:pですがこれは現在開いているファイルのフルパスを渡してくれるvim変数です。

これが可能なのでこういうmapleaderも作成可能です。(autocmd Bufwrite以外にも)

その他例(中級)
nnoremap <Leader>perlc :!perl -c %:p<CR>
nnoremap <Leader>gofmt :!go fmt %:p<CR>

# 特定のファイルタイプの時のみ設定反映したいならautocmd Filetypeを使う
autocmd FileType perl nnoremap <Leader>perlc :!perl -c %:p<CR>
autocmd FileTypego nnoremap <Leader>gofmt :!go fmt %:p<CR>

その他にもこれだけのvim変数が存在しますので、興味がある方は参考にしてみてください。

コマンド名説明
@%ファイルの相対パス
%:tファイル名
%:pファイルの絶対パス
%:p:hファイルのディレクトリ名
%:r拡張子抜きのファイル名
%:eファイルの拡張子

例4: お手軽で簡単だけど便利な例

その他例(超簡単)
nnoremap <Leader>w:w<CR>
nnoremap <Leader>ee :e<CR>
nnoremap <Leader>qq :q!<CR>
nnoremap <Leader>wq:wq<CR>
nnoremap <Leader>nn :noh<CR>
nnoremap <Leader>t:tabnew<CR>
nnoremap <Leader>s :<C-u>split<CR>
nnoremap <Leader>v:<C-u>vsplit<CR>

英字キーボードでコロン打つのが面倒な人に嬉しいお手軽ショートカットです。Space + wだけでファイル保存が可能です。

ドキュメント

https://vim-jp.org/vimdoc-ja/map.html

総観

自作する必要のない状態が個人的に一番楽なのですが(jetbrain系みたいな導入時点で完成してるやつ)、たまに振り返ってコネコネvimrcをカスタマイズしてるのも楽しいですね。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>