Vim Part31at UNIXVim Part31 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト277:名無しさん@お腹いっぱい。 23/11/04 13:46:58.38 .net 質問です! :<C-R>"でコマンドラインに無名レジスタの文字列が挿入されますが、この文字列をあらかじめエスケープすることはできますか? /var/tmp/foo -> \/var\/tmp\/foo にして貼り付けたい。 278:名無しさん@お腹いっぱい。 23/11/04 17:40:03.46 .net cat /dev/clipboard | perl -pe 's(/)(\\/)g' > /dev/clipboard " レジスタに入れたあと、手動ないし自動で こんなの実行させるイメージ 279:名無しさん@お腹いっぱい。 23/11/05 00:29:58.72 .net >>278 サンキュ。試行錯誤して.vimrcに以下を書いたら**で*レジスタの内容をエスケープして展開できたわ。 もっとエレガントな方法ないかな。 cnoremap <expr> ** getcmdtype() == ':' ? substitute(substitute(substitute(@*,' ','\\ ',''),'\n','',''),'/','\\/','g') : '**' 280:名無しさん@お腹いっぱい。 23/11/05 07:12:49.52 .net escape() の第二引数でエスケープする文字を指定 <C-R>= で挿入 cnoremap ** <C-R>=getcmdtype() == ':' ? escape(substitute(@", '\n\%$', '', ''), "/ \n") : '**'<CR> 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch