2012-04-14 4 views
1

Ich brauche C-x in Vim neu zuordnen wie in einigen Windows-Editoren zu verhalten:C-x Remapping in Vim

  • im visuellen Modus sollte ausgewählten Text schneiden.
  • Im normalen Modus sollte die aktuelle Zeile nur dann abgeschnitten werden, wenn sie nicht leer ist.
  • Eine leere Zeile sollte gelöscht und in die Registrierung für schwarze Löcher eingefügt werden.
+1

Werfen Sie einen Blick auf die mswin.vim, mit der vim ausgeliefert wird. Möglicherweise möchten Sie nur diese Datei bereitstellen und noch mehr Windows-ähnliche Verhaltensweisen erhalten. –

+0

Ja, ich weiß über die Datei. Es enthält diese Mapping 'vnoremap " + x ", die kümmert sich um Punkt Nr. 1 von dem, was ich fragte. – mihai

Antwort

2
" Source distribution script in $VIMRUNTIME directory 
:runtime mswin.vim 

if has('clipboard') 
    nmap <silent> <C-X> :call CutNonEmptyLineToClipboard()<CR> 
    " If the current line is non-empty cut it to the clipboard. 
    " Else do nothing. 
    function! CutNonEmptyLineToClipboard() 
     if strlen(getline('.')) != 0 
      normal 0"*D 
     endif 
    endfunction 
endif 

unten Aktualisierte Version. Musste googeln "black hole register", von dem ich nichts wusste. (Danke!) Ich habe auch einen anderen Leerzeilen-Matcher eingefügt. Wählen Sie die Version, die am besten zu Ihnen passt.

if has('clipboard') 
    nmap <silent> <C-X> :call CutNonEmptyLineToClipboard()<CR> 
    " If the current line is non-empty cut it out into the clipboard. 
    " Else delete it into the black hole register (named _). 
    function! CutNonEmptyLineToClipboard() 
     " Test if the current line is non-empty 
"  if strlen(getline('.')) != 0 
     if match(getline('.'), '^\s*$') == -1 
      normal 0"*D 
     else 
      normal "_dd 
     endif 
    endfunction 
endif 
+0

Cool. Es funktioniert gut, aber es respektiert nicht den letzten Punkt (" Eine leere Zeile sollte gelöscht und gesetzt werden in der Black-Hole-Registrierung "). Es braucht ein' sonst normal "_dd'. Wenn Sie die Antwort bearbeiten, akzeptiere ich sie. – mihai

+0

@mihai Nur ein Heads-Up, die Lumi hat ihre Antwort aktualisiert, die Ihr Problem anzugehen scheint:). –

+0

netter Job, danke. – mihai

Verwandte Themen