Um einen Bindestrich einzufügen , benutze ich ^v u 2014
sieben Tastendrücke. Gibt es einen einfacheren Weg? (Ich habe mir Digraphen angesehen und dort keinen Bindestrich gefunden.)
insert-mode
unicode
input-methods
Tomas Tomecek
quelle
quelle
<Ctrl-Shift-U>2013<Space>
weil es überall funktioniert. Ein paar Tastencodes reichen weit (ich verwende hauptsächlich U + 2013, U + 2014, U + 2026, U + 2212, U + 2192, U + B0; - / - /… / - / → / °).Compose
-
-
-
für einen Em-Dash,Compose
-
-
.
für einen En-Dash. Komponieren ist magisch, besonders wenn Sie es der ansonsten völlig unbenutzten Feststelltaste zuordnen.Antworten:
Sie können Digraphen verwenden: Ctrl+k-N(mit einem Großbuchstaben
N
)Im Einfügemodus werden Digraphen Ctrl+kgefolgt von einer zweistelligen Sequenz eingegeben . Für en-dash lautet die Reihenfolge
-N
.Wie Quincy betonte,
U+2014
ist Em-Dash. Wenn Sie dies mit Digraphen eingeben möchten, lautet die Reihenfolge-M
.quelle
U+2014
ist nicht en-dash? Mein ganzes Leben war eine Lüge! Bearbeiten: jetzt verstehe ich es: meine Terminal-Schriftart (Inconsolata) rendert beide Striche auf die gleiche Weise.:digraphs
Befehl, um alle Digraphen anzuzeigen, und suchen Sie nach 8211.Wenn es keinen vordefinierten Digraphen gibt oder Sie eine einprägsamere Tastenfolge wünschen, können Sie Digraphen in Ihrem vimrc definieren. Im Folgenden werden beispielsweise zwei Digraphen für en dash (8211) und em dash (8212) definiert, die ihre XCompose-Sequenzen widerspiegeln.
Der
:digraph
Befehl erwartet, dass der Wert dezimal und nicht hexadezimal angegeben wird. Aus diesem Grund ist es 8211 für en dash und nicht 2013.quelle
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:
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: ***
* 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 .quelle
set conceallevel=1 | syntax match longdash '—' conceal cchar=-
Sie Folgendes : (Beachten Sie, dass der erste Gedankenstrich in diesem Befehl ein Bindestrich und der zweite ein Bindestrich mit voller Breite ist.)syntax match
Befehl auch außerhalb des Kontexts einer Syntaxdatei?Auf meiner französischen AZERTY Mac-Tastatur kann ich mit Alt+ einen Bindestrich einfügen -. Ihr Kilometerstand kann natürlich variieren.
quelle
Alt+-
(oderOption+-
um pedantisch zu sein) ist eine Mac-spezifische Verknüpfung. Es funktioniert überall in OS X, ist aber nicht mit vi oder vim verwandt.-
, wodurch in den normalen Modus gewechselt und der Cursor an den Anfang der vorherigen Zeile gesetzt wird.Installieren Sie mein Unicode-Plugin , geben Sie Vim ein und geben Sie DASH ein, gefolgt von CtrlXCtrlZ, um die Unicode-Vervollständigung zu aktivieren.
(Beachten Sie das -N in der Beschreibung, das den Digraphen zur Eingabe dieses Zeichens zeigt.)
quelle
Inspiriert von Richs großartiger Antwort habe ich meinem vimrc die folgenden Zeilen hinzugefügt:
Funktioniert wie ein Genuss!
quelle
Für einen en dash ist ein Digraph der beste Weg, wie in verschiedenen anderen Antworten vorgeschlagen. Für beliebige Unicode-Zeichen können Sie auch den
^V
Einfügemodus verwenden (siehe:he i_CTRL-V_digit
).Für einen Bindestrich wäre das zum Beispiel
^Vu2013
.quelle