513 Stimmen

Wie man Text am Anfang einer mehrzeiligen Auswahl in vi/Vim einfügt

Sur Vim Wie füge ich Zeichen am Anfang jeder Zeile in einer Auswahl ein?

Ich möchte zum Beispiel einen Codeblock auskommentieren, indem ich Folgendes voranstelle // am Anfang jeder Zeile, vorausgesetzt, das Kommentarsystem meiner Sprache erlaubt keine Blockkommentare wie /* */ . Wie würde ich das machen?

2voto

Benedikt Waldvogel Punkte 11849

Ich kann die EnhCommentify Plugin.

z.B. fügen Sie dies in Ihre vimrc ein:

let maplocalleader=','
vmap <silent> <LocalLeader>c <Plug>VisualTraditional
nmap <silent> <LocalLeader>c <Plug>Traditional
let g:EnhCommentifyBindInInsert = 'No'
let g:EnhCommentifyMultiPartBlocks = 'Yes'
let g:EnhCommentifyPretty = 'Yes'
let g:EnhCommentifyRespectIndent = 'Yes'
let g:EnhCommentifyUseBlockIndent = 'Yes'

Sie können dann die (ausgewählten) Zeilen mit ',c' kommentieren/entkommentieren

1voto

JJoao Punkte 4381

Markieren Sie den zu kommentierenden Bereich als Sichtblock ( <C-V )

und tun c#<ESC>p

  1. c ändern Sie es in "#"
  2. legen Sie es zurück

Wenn Sie dies häufig tun, definieren Sie eine Abkürzung (Beispiel \q ) in Ihrer .vimrc

:vmap \q c#<ESC>p

1voto

TheUnseen Punkte 145

Falls eine mehrzeilige Auswahl tatsächlich ein Absatz ist, ist es nicht nötig, die Zeilen manuell auszuwählen. vim kann das für Sie tun:

  1. vip Auswählen und Markieren des gesamten Absatzes
  2. shift-i : Text am Zeilenanfang einfügen
  3. escape : Einfügemodus verlassen/den normalen Modus betreten [Zeilenanfänge noch markiert]
  4. escape : Zeilenanfänge abwählen

0voto

Xopi García Punkte 191

Abbildung der meistgewählten Antwort:

1. visuelle Auswahl der gewünschten Zeilen, dann ausführen <leader>zzz , die Werte:

vnoremap <leader>zzz <C-V>^I-<Space><Esc>
  • <C-V> um in den visuellen Modus zu gelangen
  • ^ an den Anfang der Zeile ( oder verwenden Sie ' 0 ' bis 1. nicht leer)
  • I zum Einfügen im Blockmodus
  • -<Space> zum Einfügen von '- ' (z. B. nach Bedarf bearbeiten)
  • <Esc> die gleiche Einfügung auf alle Zeilen des Sichtblocks anzuwenden

Oder der letzten visuellen Auswahl aus dem Normalmodus:

nnoremap <leader>zzz gv<C-V>^I-<Space><Esc>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X