Zoeken op website

Toegang tot de inhoud van het klembord in meerdere exemplaren van Vim vanaf Terminal


Vim (Vi IMproved) is een van de meest favoriete teksteditors onder programmeurs. Het heeft zijn eigen specialiteiten in het uitvoeren van verschillende operaties met korte handopdrachten.

Om bijvoorbeeld de gemarkeerde tekst te kopiëren, gebruiken we de opdracht ‘y’ en ‘x‘ om dezelfde tekst te knippen. Maar standaard is vim (en niet gVim) klembordinhoud niet toegankelijk na het sluiten van vim-instanties.

Vim gebruikt het register ‘+’ om naar het systeemklembord te verwijzen. U kunt 'vim –version' uitvoeren en als u iets als “+xterm_clipboard” en in plaats daarvan “xterm_clipboard“ niet kunt zien, dan de inhoud van het interne klembord zal niet beschikbaar zijn buiten vim.

Installeer gvim en packetlite

Om toegang te krijgen tot de inhoud van het vim-klembord, moet u het gvim-pakket installeren. De gVim is een GUI-modus voor de vim-editor waarin de klembordoptie standaard is ingeschakeld.

yum install -y gvim

Schakel vervolgens RPMForge Repository in om het parcellite pakket te installeren. De Parcellite is een lichtgewicht, kleine en gratis klembordmanager voor Linux.

yum install -y parcellite

Eenmaal geïnstalleerd, voert u de volgende opdracht uit. Waar het argument ‘&’ wordt gebruikt om Parcellite te verzenden om als achtergrondproces te worden uitgevoerd.

parcellite &

Controleer of de optie is ingeschakeld in gvim.

gvim --version

Zorg ervoor dat de optie “+xterm_clipboard” wordt weergegeven in de uitvoer, zoals hieronder weergegeven.

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

Open het .bashrc-bestand van de gebruiker.

vim ~/.bashrc

En voeg de alias toe en sla het bestand op (druk op 'i' om een regel in te voegen en druk op ESC, voer vervolgens :wq uit om op te slaan en af te sluiten) .

.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

Deze alias is ingebouwd en wordt gebruikt om een opdracht naar een andere te omzeilen. Dus elke keer dat het vim-commando wordt gegeven, gaat de corresponderende alias naar gvim waarbij het klembord standaard is ingeschakeld.

Bewerk nu uw '.vimrc'-bestand op een vergelijkbare manier (als u geen .vimrc-bestand heeft, genereer dan een dergelijk bestand en kom dan hier terug .

vim ~/.vimrc

Voeg de volgende regel toe en sla het bestand op.

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

Open nu een bestand in vim en markeer het gedeelte van de tekst (met behulp van de opdracht 'v') en druk op "+y. Probeer ergens buiten vim te plakken (na het sluiten of zonder vim te sluiten) en je bent klaar.

.vimrc-bestand genereren

Voer de volgende opdracht uit om het .vimrc-bestand te genereren (sla dit gedeelte over als u er al een heeft).

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

Voer in vim het volgende uit nadat u op de ESC-toets hebt gedrukt (In vim wordt elke opdracht uitgevoerd nadat u op de ESC-toets hebt gedrukt, waardoor u in de opdrachtmodus komt).

:r $VIMRUNTIME/vimrc_example.vim 
:w