ウェブサイト検索

ターミナルから Vim の複数のインスタンスにわたるクリップボードの内容にアクセスする


Vim (改良された Vi) は、プログラマの間で最も人気のあるテキスト エディタの 1 つです。短縮コマンドを使用してさまざまな操作を実行するという独自の専門性を備えています。

たとえば、強調表示されたテキストをコピーするには、「y」コマンドを使用し、同じものを切り取るには「x」コマンドを使用します。ただし、デフォルトでは、vim インスタンスを閉じた後は、vim ( gVim ではありません) クリップボードの内容にアクセスできません。

Vim は '+' レジスタを使用してシステム クリップボードを参照します。 「vim –version」を実行すると、「+xterm_clipboard」ではなく「xterm_clipboard」のようなものが表示されない場合は、内部クリップボードの内容が表示されます。 vim 以外では利用できません。

gvim とパーセルライトをインストールする

vim クリップボードの内容にアクセスするには、gvim パッケージをインストールする必要があります。 gVim は vim エディターの GUI モードで、クリップボード オプションがデフォルトで有効になっています。

yum install -y gvim

次に、RPMForge リポジトリを有効にしてパーセライトパッケージをインストールします。 Parcellite は、Linux 用の軽量、小型、無料のクリップボード マネージャーです。

yum install -y parcellite

インストールしたら、次のコマンドを実行します。ここで、引数「&」は、バックグラウンド プロセスとして実行するパーセルライトを送信するために使用されます。

parcellite &

gvim でオプションが有効になっているかどうかを確認します。

gvim --version

以下に示すように、出力に「+xterm_clipboard」オプションが表示されていることを確認してください。

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr  5 2012 10:12:08)
Included patches: 1-411
Modified by <[email >
Compiled by <[email >
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent 
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic 
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path 
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand 
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap 
+menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm 
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte 
+multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript 
+printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind 
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax 
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse 
+textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual 
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup 
+X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save

ユーザーの .bashrc ファイルを開きます。

vim ~/.bashrc

そして、エイリアスを追加してファイルを保存します(「i」を押して行を挿入し、ESC を押してから、:wq を実行して保存して終了します)。 。

.bashrc

User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vim='gvim -v'
Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

このエイリアスは、あるコマンドを別のコマンドにバイパスするために使用される組み込みです。したがって、vim コマンドが発行されるたびに、対応するエイリアスは gvim に移動し、デフォルトでクリップボードが有効になります。

次に、同様の方法で「.vimrc」ファイルを編集します (.vimrc ファイルがない場合は、そのようなファイルを 1 つ生成してから、ここに戻ります) 。

vim ~/.vimrc

次の行を追加してファイルを保存します。

autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")

次に、vim で任意のファイルを開き、(「v」コマンドを使用して) テキストの部分を強調表示し、「+y」を押します。 vim の外側の任意の場所 (vim を閉じた後、または閉じずに) を貼り付ければ完了です。

.vimrc ファイルの生成

次のコマンドを実行して .vimrc ファイルを生成します (既にファイルがある場合はこの部分をスキップしてください)。

cd   [This will put you in home directory]       
vim .vimrc

vim では、ESC キーを押した後に次のコマンドを実行します (vim では、ESC キーを押してコマンド モードにした後にすべてのコマンドが実行されます)。

:r $VIMRUNTIME/vimrc_example.vim 
:w