it-swarm.com.de

Kann ich die Fortsetzung in der nächsten Zeile in Vim deaktivieren?

Wenn ich in Vim einen Kommentar in eine Codedatei eingebe und tippe Entermacht die Newline automatisch auch zu einem Kommentar.

Zum Beispiel in einer Ruby-Datei:

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

Im Allgemeinen ist es das, was ich will, aber nicht immer. Wie kann ich dieses automatische Kommentieren vorübergehend deaktivieren?

60
Nathan Long

Ich glaube, du suchst

:set formatoptions-=cro

Von :help fo-table :

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

t       Auto-wrap text using textwidth
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.
...
82
Mike Seplowitz

Das vorübergehende Festlegen der Option 'Einfügen' kann tun, was Sie wollen, deaktiviert jedoch auch viele andere Vim-Funktionen:

Verwenden Sie :set paste, um es zu aktivieren, und :set nopaste, um es zu deaktivieren. Alternativ können Sie :set paste! verwenden, um es umzuschalten.

Siehe auch:

:help 'paste'
:help 'pastetoggle'

(Diese Befehle werden in einfache Anführungszeichen gesetzt.)

8
Heptite

Ich gebe mit <CR> nicht formatierte einfache neue Zeilen ein.

Wenn ich die nächste Zeile im kommentierten Block weiter tippen möchte, benutze ich einfach das O Schlüssel wie gewohnt.

Versuche dies:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>
3

Ich habe folgendes herausgefunden:

nnoremap <Leader>o o<Esc>^Da
nnoremap <Leader>O O<Esc>^Da

Es hängt eine neue Zeile an, löscht alles, was dort bereits eingefügt wurde, und lässt den Cursor im Einfügemodus in der eingerückten Spalte, ohne die Formatoptionen zu beeinträchtigen.

0
Ruben

Diese Antwort gilt für Debian und einige seiner Derivate.

Auf einer Debian-Distribution sind Vim-Standardeinstellungen nicht zumutbar. Sie befinden sich in /usr/share/vim/vim80/defaults.vim und werden angewendet, nachdem (!) /etc/vim/vimrc ausgeführt wurde. Die einzige Möglichkeit, Vim anzuweisen, seine Standardeinstellungen nicht zu verwenden, besteht darin, sicherzustellen, dass ~/.vimrc auch dann vorhanden ist, wenn er leer ist. Vim versucht beim Start, aus dem .vimrc zu lesen, aber wenn die Datei nicht gefunden wird, werden die Standardeinstellungen angewendet, was eine Menge unerwünschtes Verhalten zur Folge hat, z. Mausintegration, Macken beim Kopieren und Einfügen, automatisches Umbrechen von Kommentaren usw.

Unter Debian können Sie ALLES beheben, indem Sie einfach touch ~/.vimrc ausführen.

0
oᴉɹǝɥɔ