Vimのバッファをクリップボードにコピーしようとしていますが、次のことを行いました:
:!cat %|pbcopy
# 完璧に動作します
次に、これをリーダーキーでマップしようとしました(何かをマップするのは初めての試みなので、ばかげたものが見つかったらすみません)。
:map <leader>c :!cat %|pbcopy
# これは機能していません。vimは文句を言います:エディターコマンドではありません
パイプを脱出する
:map <leader>c :!cat %\|pbcopy
また、nnoremap を使用して再帰マッピングを停止し、コマンドを終了し<CR>
て、コマンドが自動的に実行されるようにすることも検討してください。
nnoremap <leader>c :!cat %\|pbcopy<CR>
ファイルにスペースやその他の特殊な文字が含まれている場合に備えて、shellescape の使用を検討することもできます。
nnoremap <leader>c :exec '!cat '.shellescape('%').'\|pbcopy'<CR>
またはピーター・リックナーが言うように
nnoremap <leader>c :w !pbcopy<cr>
これは、Mac だけでなく、どのシステムでも機能します。
:nmap <leader>c :%y+
"+
(とレジスタの違いを思い出すことはできません"*
。) OTOH さん、あなたの方法は、Mac で GUI をサポートしていないバージョンの vim を使用している場合に機能します/usr/bin/vi
。
:help "+
:help :y