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

Mac — Vimでクリップボードを直接編集する

$
0
0

結論から先に書く

function pbvim (){readonly pbvim_tmp_file=./.pbvim.tmp

  pbpaste | vim - +"w $pbvim_tmp_file"cat"$pbvim_tmp_file" | tr-d"\012"| pbcopy # tr は末尾の改行を削除するためrm-f"$pbvim_tmp_file"}

上記の関数を rc ファイルに追加する。 ( e.g ~/.bashrc~/.zshrc )

シェルを再起動して pbvimを実行すると、vimでクリップボードのテキストを直接編集して上書き出来る。

ccc/pbvim at master · YumaInaura/ccc

ステップ解説

Step. 標準出力からVim編集を開始する

pbpaste | vim -

ただ、このやり方だとファイル名を渡していないため、そのままだと編集できない

Step. Vimにファイルパスを渡す

pbpaste | vim - +"w some_filepath"

「シェルから実行するvimコマンド」の引数として「vim 内部のコマンド」を渡す。

:w some_filepathという「vim内部のコマンド」がファイル編集前に実行される。 ( some_filepathという名前で編集内容を保存 )

Step. 一時ファイルを利用

vimでの編集内容を pbcopy コマンドに標準入力として渡したいが、
vim コマンドはファイル内容を標準出力するわけではないので、ここでは一時ファイルを利用する。

  1. 一時ファイルを作成
  2. pbpaste での標準出力をvimに渡す
  3. vimで編集して一時ファイルに記録された内容を、別コマンド ( cat ) で標準出力する
  4. 標準出力を pbcopy コマンドに渡す
  5. 一時ファイルを削除する

この流れ全体を実行したのが最初の例である。

Versions

  • VIM - Vi IMproved 8.1 (2018 May 18, compiled Aug 7 2018 21:58:18)
  • Max OS X High Sierra

Ref

Links


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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