Adgang til udklipsholderindhold på tværs af flere forekomster af Vim fra Terminal


Vim (Vi IMproved) er en af de mest foretrukne teksteditorer blandt programmører. Det har sine egne specialiteter i at udføre forskellige operationer med korte håndkommandoer.

For eksempel for at kopiere den fremhævede tekst bruger vi kommandoen 'y' og 'x' for at klippe den samme. Men som standard kan ikke adgang til vim (og ikke gVim) udklipsholderindhold efter lukning af vim-forekomster.

Vim bruger '+' registeret til at henvise til systemets udklipsholder. Du kan køre 'vim –version', og hvis du ikke kan se noget som "+ xterm_clipboard" og i stedet for "xterm_clipboard", er internt udklipsholderindhold ikke tilgængeligt uden for vim.

For at få adgang til vim-udklipsholderens indhold skal du installere gvim-pakken. GVim er en GUI-tilstand til vim-editor, hvor udklipsholder er aktiveret som standard.

# yum install -y gvim

Aktivér derefter RPMForge Repository for at installere parcellite-pakke. Parcellite er en let, lille og gratis udklipsholder til Linux.

# yum install -y parcellite

Når du er installeret, skal du køre følgende kommando. Hvor argumentet '&' bruges til at sende parcellite til kørsel som baggrundsproces.

# parcellite &

Kontroller, om indstillingen er aktiveret i gvim.

# gvim --version

Sørg for at have "+ xterm_clipboard" -indstillingen vist i output som vist nedenfor.

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

Åbn brugerens .bashrc-fil.

# vim ~/.bashrc

Og tilføj aliaset, og gem filen (tryk på 'i' for at indsætte linje, og tryk på ESC, kør derefter: wq for at gemme og afslutte).

# .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

Dette alias er en indbygget, der bruges til at omgå en kommando til en anden. Således hver gang når vim-kommandoen udstedes, går det tilsvarende alias til gvim med udklipsholder aktiveret som standard.

Rediger nu din '.vimrc' fil på en lignende måde (hvis du ikke har en .vimrc fil, skal du generere en sådan fil igennem og derefter komme tilbage her.

# vim ~/.vimrc

Tilføj følgende linje, og gem filen.

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

Åbn nu en fil i vim og fremhæv den del af teksten (ved hjælp af kommandoen ‘v’), og tryk på “+ y. Prøv at indsætte hvor som helst uden for vim (efter lukning eller uden lukning af vim), og du er færdig.

Kør følgende kommando for at generere .vimrc-fil (spring denne del over, hvis du allerede har en).

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

In vim kør følgende efter tryk på ESC-tasten (In vim køres hver kommando efter tryk på ESC-tast, som sætter dig i kommandotilstand).

:r $VIMRUNTIME/vimrc_example.vim 
:w