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

【Vim】シェルの実行結果を行としてではなく現在のカーソル位置に挿入する

$
0
0

例えば:read !dateなどと打つと、dateの結果を挿入することができるけど、行で出力されてしまうので、カーソルの右側に出力したいという用途には使えない。

挿入モードやコマンドラインモードで<C-r>=を使うと現在のカーソル位置にVim scriptの結果が挿入されるので、<C-r>=を打った後、system('date')と打つとやりたいことが大体できるが、最後の改行が入ってしまうのと、system('')を打つのがめんどい。

そこで、<C-r>!<command><command>の実行結果から最後の改行を取り除いたものをカーソル位置に挿入できるようにした。

inoremap<expr><C-r>!<SID>system()
cnoremap <expr><C-r>!<SID>system()function! s:system()let command = input("!",'','shellcmd')return substitute(system(command),'\n\+$','','')endfunction

上記をvimrcに書いて

わたしは<C-r>!whoami<CR>です。

と打つと

わたしはtmsanrinshaです。

となる。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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