Aby wstawić myślnik , używam ^v u 2014
siedmiu klawiszy. Czy istnieje prostszy sposób? (Patrzyłem na digrafy i nie znalazłem tam kreski.)
insert-mode
unicode
input-methods
Tomas Tomecek
źródło
źródło
<Ctrl-Shift-U>2013<Space>
ponieważ działa wszędzie. Kilka kluczowych kodów przechodzi długą drogę (używam głównie U + 2013, U + 2014, U + 2026, U + 2212, U + 2192, U + B0; - / - /… / - / → / °).Compose
-
-
-
dla em-dash,Compose
-
-
.
dla en-dash. Komponowanie jest magiczne, zwłaszcza jeśli zamapujesz go na całkowicie nieużywaną Caps-Lock.Odpowiedzi:
Możesz używać digrafów: Ctrl+k-N(z dużą
N
)W trybie Wstawianie są wprowadzane cyfry, Ctrl+kpo których następuje sekwencja dwóch znaków. Dla en-dash sekwencja jest następująca
-N
.Jak zauważył Quincy,
U+2014
to em-dash. Jeśli chcesz wprowadzić to za pomocą digraphs, sekwencja jest-M
.źródło
U+2014
nie jest en-dash? całe moje życie było kłamstwem! Edycja: teraz rozumiem: moja czcionka terminalowa (Inconsolata) renderuje oba myślniki w ten sam sposób.:digraphs
polecenia, aby wyświetlić wszystkie digrafy i poszukaj 8211.Jeśli nie ma predefiniowanego digrafu lub chcesz bardziej zapadającą w pamięć sekwencję klawiszy, możesz zdefiniować digrafy w swoim vimrc. Na przykład poniżej zdefiniują dwa digrafy dla en dash (8211) i em dash (8212), które odzwierciedlają ich sekwencje XCompose.
:digraph
Komenda spodziewa wartość należy określić w systemie dziesiętnym, a nie hex, dlatego to 8211 dla Półpauza niż 2013.źródło
Standardowym sposobem wstawiania kreski w Vim jest użycie digrafa , jak wyjaśnił tommcdo .
Jednak uważam, digrafy w ogóle, a szczególnie ten jeden ( Ctrl+k, -, Shift+N) dość niewygodne do pisania. Aby przyspieszyć wprowadzanie myślników, możesz dodać następującą parę mapowań w trybie wstawiania do pliku typu pliku, na przykład
.vim/after/ftplugin/markdown.vim
.Odpowiednio dla myślników en / em:
Uwaga:
<buffer>
Oznacza to, że mapowanie będzie miało zastosowanie tylko do plików Markdown. Jest to konieczne, ponieważ istnieją pewne konteksty (np. Programowanie), w których nie chcę, aby dwa myślniki były zastępowane myślnikami.Te mapowania wykorzystują fakt, że w kontekstach zwykle ich używam, myślniki są otoczone spacjami, a myślniki nie . * Używanie tych mapowań oznacza zatem, że mogę używać dokładnie tych samych naciśnięć klawiszy w mniej wydajnych edytorach tekstu, których czasami jestem zmuszony używać i nadal otrzymuję rozsądne wyniki. **
Właściwie używam nieco bardziej skomplikowanego rozwiązania niż powyższe, ponieważ z powodów typograficznych lubię otaczać moje kreski przedziałami włosów . Umieszczenie ich w Markdown sprawia, że jest mniej czytelny, ale na szczęście Vim ma na to rozwiązanie, dzięki funkcji „ukrywania”, która pozwala ukryć pewne elementy składniowe, gdy kursor znajduje się w innej linii: ***
* Jeśli kiedykolwiek będę musiał użyć nieskreślonej kreski en, mogę po prostu nacisnąć backspace po wpisaniu mapowania.
** Jeśli nie zazwyczaj używają en-kreski tak, lub jeśli nie zawsze wychodzić z vim, można użyć coś innego, aby wywołać mapowania: Np
--.
i---
. Jeśli używasz innych wyzwalaczy, możesz również umieścić to bezpośrednio w .vimrc i usunąć<buffer>
opcje.*** Możesz również użyć znaku ukrywania,
cchar
aby zastąpić elementy składniowe jednym znakiem, zamiast całkowicie je ukrywać. Jeśli martwisz się problemami z kodowaniem, możesz użyć tego, aby Vim wyświetlał–
encje HTML w pliku jako myślniki.źródło
set conceallevel=1 | syntax match longdash '—' conceal cchar=-
(Zauważ, że pierwszy myślnik w tym poleceniu to myślnik, a drugi to myślnik o pełnej szerokości minus).syntax match
polecenie działa nawet poza kontekstem pliku składniowego?Na mojej francuskiej klawiaturze Mac AZERTY mogę wstawić myślnik za pomocą Alt+ -. Twój przebieg może się oczywiście różnić.
źródło
Alt+-
(a raczejOption+-
być pedantyczny) to skrót dla komputerów Mac. Działa wszędzie w OS X, ale nie jest związany z vi ani vim.-
następuje przejście do trybu normalnego i umieszczenie kursora na początku poprzedniej linii.Zainstaluj moją wtyczkę Unicode , wpisz Vim i wpisz DASH, a następnie CtrlXCtrlZaktywuj uzupełnianie Unicode.
(Zwróć uwagę na -N w opisie, który pokazuje cyfrę, aby wprowadzić ten znak)
źródło
Zainspirowany świetną odpowiedzią Richa dodałem następujące wiersze do mojego vimrc:
Działa jak uczta!
źródło
W skrócie digraph jest najlepszą drogą, jak sugerują różne inne odpowiedzi. Ale w przypadku dowolnych znaków Unicode innym sposobem jest użycie
^V
w trybie wstawiania (patrz:he i_CTRL-V_digit
).Na przykład w myśleniu
^Vu2013
.źródło