На gvim я можу використовувати
imap <C-s> <ESC>:w
imap <C-c> and etc...
Але я не можу на Vim (термінал) використовував Imap? Як я можу використовувати деякий Imap на терміналі?
На gvim я можу використовувати
imap <C-s> <ESC>:w
imap <C-c> and etc...
Але я не можу на Vim (термінал) використовував Imap? Як я можу використовувати деякий Imap на терміналі?
Відповіді:
Команда imap прекрасно працює в терміналі. Проблема полягає в тому, що термінал обробляє деякі контрольні символи спеціально, використовуючи їх для управління поведінкою терміналу, а не пересилає цих символів до програми, що працює в терміналі. Для управління потоком зазвичай використовуються Ctrl-S і Ctrl-Q. Ctrl-C зазвичай спричиняє надходження до програми сигналу INTR (переривання).
Програми можуть сказати терміналу, щоб не поводитися з певними символами спеціально та пересилати їх замість цього. Vim обробляє Ctrl-C сам, і ви повинні мати можливість його уявити. (Я просто спробував це, і це спрацювало на мене.) Vim не каже терміналу пересилати Ctrl-S і Ctrl-Q, однак вам доведеться сказати терміналу, щоб це зробити самостійно. Один із способів - виконати цю команду в запиті оболонки перед запуском vim:
stty -ixon