Sagen wir, ich habe
let l:letter = 'A'
l:letter
Gibt es eine Funktion, die ASCII-Code aufnimmt und in diesen umwandelt 'B'
? Ich meine so etwas wie
let l:next_letter = l:letter + 1
Ich weiß, dass es <Ctrl-A>
mit gibt set nf=alpha
, aber dafür muss der Cursor über dem Zeichen im Dokument stehen, und ich habe mich gefragt, ob es möglich ist, dies mit einer Variablen zu tun, ohne das Dokument zu ändern.
Folgendes versuche ich bisher, aber wie gesagt, es ändert das Dokument und die Cursorposition:
fu! s:get_next_char(letter)
set nf=octal,hex,alpha
call setline(line('$') + 1, a:letter)
exe ':normal! G^'."\<C-A>"
set nf=octal,hex
let l:next_letter = getline('$')
normal! Gdd
return l:next_letter
endfu
:help string-functions
.string-functions
keine globale Standard-Manpage für jede Sprache ist, im Ernst.:help string-functions
als etwas dunkel einstufen . Einige Skriptsprachen wie Python und Perl verwendenchr()
undord()
Funktionen zum Konvertieren in ASCII / Zeichen. Wenn Sie also mit diesen Begriffen suchen, werden die Funktionennr2char
und auch immer noch nichtchar2nr
angezeigt. Ich denke, @ romainls Kommentar sollte stattdessen als Antwort gepostet werden.man man
.:help :help
ist ebenso wichtig. Die Dokumentation von vim ist jedoch ziemlich umfangreich und in den ersten Jahren schwer zu berechnen. Tricks wie:h function^D
geben uns also Einstiegspunkte. Hier wäre es:h functions
(/:h string-functions
). Dann ist es leicht zu verstehen, was was macht. Auch wenn wir an andere Sprachen gewöhnt sind. Wir können immer geben die Informationen (es ist , was wir die meiste Zeit tun), sondern Lehre , wie man Fisch ist es wichtiger - Sie das Sprichwort , dass ...:help string-functions
nicht zeigt, wie man fischt . Es ist eher so, als würde man jemandem den Köder geben und ihm nicht das Fischen beibringen. Das Posten, wie sie nach Funktionen suchen können, bringt ihnen das Fischen bei.Antworten:
Es ist einfach mit
:help nr2char()
und zu tun:help char2nr()
.Anwendungsbeispiel:
:let b_char = nr2char(char2nr('A') + 1)
Dann
:echo b_char
wird 'B' zurückgegebenquelle
Die Frage ist (Hervorhebung von mir):
Da Sie eine Funktion möchten , müssen Sie zunächst versuchen
:help function<C-d>
, alle Dokumentations-Tags aufzulisten, die Folgendes enthaltenfunction
:Der offensichtlichste Kandidat ist
function-list
, versuchen wir es:Möglicherweise haben Sie hier ein Muster bemerkt: Funktionen sind nach Themen gruppiert. Dies bedeutet, dass Sie direkt zu einer Funktion wechseln können , wenn Sie eine Funktion zum Filtern einer Liste benötigen
:help list-functions
.Die Vim-Hilfeseiten sind sehr nützlich. oft
:help <keyword><C-d>
wirst du einen langen Weg zurücklegen ;-)quelle