Die Standardmethode zum Einfügen eines Bindestrichs in Vim ist die Verwendung eines Digraphen, wie tommcdo erklärt hat .
Allerdings finde ich Digraphe im Allgemeinen und insbesondere dafür ein ( Ctrl+k, -, Shift+N) recht umständlich tippen. Zur schnelleren Eingabe von Bindestrichen können Sie einer Dateitypdatei das folgende Paar von Einfügemodus-Zuordnungen hinzufügen, z .vim/after/ftplugin/markdown.vim
.
Für en / em Striche:
inoremap <buffer> --<space> –<space>
inoremap <buffer> -- —
Hinweis <buffer>
: Diese Zuordnung gilt nur für Markdown-Dateien. Dies ist notwendig , weil es einige Kontexte (zB Programmierung) sind , wo ich nicht will zwei Bindestriche durch Striche ersetzt werden.
Diese Zuordnungen machen sich die Tatsache zunutze, dass in den Kontexten, in denen ich sie normalerweise verwende, Bindestriche von Leerzeichen umgeben sind und Bindestriche nicht . * Die Verwendung dieser Zuordnungen bedeutet daher, dass ich in den weniger leistungsfähigen Texteditoren, die ich manchmal verwenden muss, genau dieselben Tastendrücke verwenden kann und trotzdem eine vernünftige Ausgabe erhalte. **
Ich benutze eine etwas kompliziertere Lösung als die oben, weil für den typographischen Gründen Ich mag meine em-Striche mit umgeben Haar Räumen . Wenn Sie diese im Markdown haben, ist sie weniger lesbar, aber zum Glück hat Vim eine Lösung dafür, mit der Funktion "Verbergen", mit der Sie bestimmte Syntaxelemente ausblenden können, wenn sich der Cursor in einer anderen Zeile befindet: ***
inoremap <buffer> --<space> –<space>
inoremap <buffer> --  — 
syntax match entity_hairspace " " conceal
setl conceallevel=2
* Wenn ich jemals einen Gedankenstrich ohne Leerzeichen verwenden muss, kann ich einfach die Rücktaste drücken, nachdem ich das Mapping eingegeben habe.
** Wenn Sie im Allgemeinen keine solchen Gedankenstriche verwenden oder sich nie aus Vim herauswagen, können Sie die Zuordnungen mit etwas anderem auslösen: z . B. --.
und ---
. Wenn Sie andere Trigger verwenden, können Sie diese auch direkt in Ihre .vimrc-Datei einfügen und die <buffer>
Optionen entfernen .
*** Sie können auch ein verborgenes Zeichen verwenden cchar
, um Syntaxelemente durch ein einzelnes Zeichen zu ersetzen, anstatt sie vollständig auszublenden. Wenn Sie sich Sorgen um Codierungsprobleme machen, können Sie Vim so veranlassen, –
HTML-Entitäten in der Datei als Bindestriche anzuzeigen .