Sie Startseite neu zuordnen könnte das gleiche wie ^ (die docs sagen Startseite ‚s zu sein Standardfunktion entspricht den Bewegungsbefehl |):
:map <Home>^
:imap <Home> <Esc>^i
der den Einsatz-Modus Abbildungs äquivalent machen sollte aus Einfügemodus austretendes Drücken von ^ und dann Rückkehr in den Einfügemodus. Ich weiß nichts über die beste Methode, einen Bewegungsbefehl für den Einsatz im Einfügemodus zuzuordnen, also könnte das etwas kaputt machen, aber es scheint zu funktionieren.
Was Ihre Einrückungseinstellungen betrifft, sollten sie keine Auswirkungen auf die Bewegungssteuerung haben, aber ich denke auch, dass Sie sie wahrscheinlich anders einstellen würden. autoindent behält nur Ihre aktuelle Einrückung für neue Zeilen bei. Wenn Sie also 4 Leerzeichen am Anfang einer Zeile platzieren, werden nach dem Drücken der Eingabetaste auch 4 Leerzeichen davor stehen. Ich weiß nicht, warum du das nicht willst, denn es ist ziemlich nützlich in so ziemlich jeder Programmiersprache oder auch nur in Form von Freiform. smartindent implementiert andererseits ein paar hart codierte, leicht C-ische Einrückungsregeln, wie das Einrücken nach einer öffnung {, und das Entdenden nach einem Schließen}, führt aber nicht automatisch einen Einzug von vorherigen Zeilen fort. Die Dokumentation empfiehlt, die automatische Erkennung bei Verwendung von smartindent beizubehalten.
Allerdings ist smartindent nutzlos für Sprachen, die nicht ihre hartcodierten Regeln erfüllen, oder sogar aktiv schädlich (wie wenn es automatisch den Einzug aus jeder Zeile löscht, die mit einem '#' beginnt und eine Präprozessordirektive ist) ist aber falsch für Python-Programmierer, die versuchen, einen eingerückten Kommentar zu schreiben).
Also vim enthält auch einen fortgeschritteneren Einrückungsmodus, Dateityp Einrückung, die flexible Einrückungsregeln auf einer Sprache/Dateityp Basis ermöglicht und ist der bevorzugte Einrückungsmodus für die meisten Menschen (auch für C-ähnliche Sprachen). Wenn Sie den Dateityp-Einzug verwenden, deaktivieren Sie am besten smartindent (andernfalls kann es den Dateityp-Einzug stören, z. B. alle Kommentarzeilen in Spalte 0 in Python-Dateien verschieben).
Persönlich habe ich immer Autoindent auf, verwende Dateityp, wenn verfügbar, und niemals smartindent. Mein .vimrc umfasst:
set autoindent " doesn't interfere with filetype indents, and is useful for text
if has("autocmd")
" Enable file type detection and indentation
filetype plugin indent on
set nosmartindent
endif
Ich stelle mir vor, es gibt etwas, das Sie haben smartindent nur eingeschaltet tun konnte, als Datei des Typs Einrücken für eine Datei des Typs nicht vorhanden ist, wenn Sie bearbeiten, dass viele verschiedene C-ähnliche Sprachen mit nicht Dateityp Einrückung verfügbar.
Also keine Möglichkeit, dies im Einfügemodus zu tun? Ich denke, ich sollte mich daran gewöhnen, zwischen den beiden zu wechseln. – Reid
Ich glaube nicht, dass es einen Weg gibt; Ich verwende die Cursorbewegung im Einfügemodus überhaupt nicht. Dieser Artikel könnte hilfreich sein: http://www.viemu.com/a-why-vi-vim.html –
@Reid - Du könntest es wahrscheinlich auf die eine oder andere Weise abbilden (siehe unten) - aber alle Bewegungen sollten wirklich sein im N-Modus gemacht, nicht ich. – Rook