Napisałem małą funkcję Vima, która przesuwa kursor do pierwszego znaku bieżącej linii. Jeśli kursor znajdował się już na pierwszym znaku, kursor zostanie przeniesiony do pierwszej kolumny.
" Jump to first character or column
noremap H :call FirstCharOrFirstCol()<cr>
:function! FirstCharOrFirstCol()
: let current_col = virtcol('.')
: normal ^
: let first_char = virtcol('.')
: if current_col == first_char
: normal 0
: endif
:endfunction
Jak mogę cicho wywołać tę funkcję? Wolę „: wywołanie FirstCharOrFirstCol ()” nie było wyświetlane w linii statusu. Po prostu zmiana na noremap H :silent call…
nie wydaje się wystarczająca.
*.vim
) Nigdy nie potrzebujesz wiodących:
znaków.Odpowiedzi:
Możesz wywołać tę funkcję po cichu, definiując cichą mapę:
Aby uzyskać więcej informacji, zobacz
:h :map-<silent>
. Zwróć uwagę w szczególności, że zapewni to tylko to, że polecenie nie zostanie wyświetlone na ekranie podczas wykonywania odwzorowania.:silent
Poleceniem wyciszyć wyjście z samej funkcji (patrz:h :silent
).źródło
:silent
właśnie tego szukałem. Warto zauważyć, że jeśli masz błędy w swojej funkcji, nadal będziesz otrzymywać wiadomości, chyba że używasz!
. Nie zdawałem sobie sprawy, że zostawiłem kod w niepoprawnym stanie, więc pomyślałem, że nie używam go:silent
poprawnie, ponieważ nie wyciszał echa i mogłem zobaczyć błąd na wyjściu !!