Мовчіть виклик функції Vim


25

Я написав невелику функцію Vim, яка переміщує курсор до першого символу поточного рядка. Якщо курсор вже був на першому символі, то він переміщується до першого стовпчика.

" 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

Як я мовчки називаю цю функцію? Я вважаю за краще, щоб "рядок виклику FirstCharOrFirstCol ()" не відображався в рядку статусу. Проста зміна на noremap H :silent call…"здається" недостатньо.


7
Лише невелика примітка: у файлі VimScript (тобто *.vim) вам ніколи не потрібні провідні :символи.
tommcdo

Відповіді:


34

Ви можете викликати функцію безшумно, визначивши безшумну карту:

noremap <silent> H :call FirstCharOrFirstCol()<cr>

Для отримання додаткової інформації див :h :map-<silent>. Зокрема, зауважте, що це гарантуватиме лише те, що команда не буде лунати на екрані під час виконання відображення. :silentКоманда використовується для відключення виходу з самої функції (див :h :silent).


1
Гарний, :silentце те, що я був після. Варто зазначити, що якщо у вас є помилки у вашій функції, ви все одно отримаєте повідомлення, якщо не будете використовувати !. Я не розумів, що залишив код у недійсному стані, і тому подумав, що не використовую :silentправильно, оскільки він не замовчує відгомони, і я міг побачити помилку у виході !!
JonnyRaa
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.