Складіть частування словосполученнями. (період) як простір


2
a b.c d
^

Якщо натиснути w, курсор переміщається на b, натискаючи знову, переміщує його.

Як я можу зробити так, щоб vim ігнорував .так само, як ігнорував простір, тобто коли курсор знаходиться b, натискання wпереміщує мене до, cі . я не хочу це робити з 90% часу, коли я хочу перейти до іншого слова w, .це не місце, куди я маю намір переїхати, і це так прикро, що мені доведеться wдвічі натиснути, щоб перейти на a.

Я також хотів би зробити те ж саме з цілою купою очевидних немовних слів, як-от ()[]{}:,

Зауважте, що :set iskeyword+=.це не задовольняє мою потребу, оскільки це призводить до натискання wна " bgo" dзамість c(я хочу, щоб він переходив безпосередньо до c, лише минаючи .)


Як мені перемістити цю інформацію до vi stackexchange ?
Руфус

Відповіді:


0

Ось чудовий плагін від Kana Natsuno, яким я користуюся вже багато років, і, думаю, робить те, що вам потрібно: https://github.com/kana/vim-smartword

Він не ігнорує просто ., він ігнорує будь-який тип пунктуації. Це означає , що слово руху, w, b, e, і ge, стрибати прямо на наступний / попередній символ слова, замість посадки на речі в середині.

Документація найкраще пояснює це: https://github.com/kana/vim-smartword/blob/master/doc/smartword.txt#L40-L66


Приємне рішення, я зв'язав їх з W, B, E замість w, b, e, оскільки я хотів зберегти dwлише видалення слова, дякую!
Руфус

Я думаю, що dwдосі видаляє лише слово. Там може бути особливе переосмислення. Я рекомендую вам спробувати dWу своєму новому картографуванні і подивитися, що це робить.
Андрій Радев

0

Ви хочете змінити iskeywordналаштування:

'iskeyword'
    Keywords are used in searching and recognizing with many commands:
    "w", "*", "[i", etc.  It is also used for "\k" in a |pattern|.  See
    'isfname' for a description of the format of this option.

Простий :set iskeyword+=.додасть .до списку символів, що вважаються частиною а word. Використовуйте коми, щоб додати кілька символів або десятковий діапазон ASCII, щоб вказати кілька одразу:

:set iskeyword+=[,],40-41    " adds []()

Зауважте, що деякі символи особливі. ,очевидно, і теж @. Дивіться :help 'isfname'повну інформацію.

iskeywordє локальним налаштуванням буфера і часто змінюється як побічний ефект, коли встановлено тип файлу, тому майте це на увазі. iskeywordможе також вплинути на виділення синтаксису, якщо не використовується синтаксис syn-iskeyword.


Не працює, як задумано, але додавання .як ключове слово робить натисканням w при bпереході безпосередньо до d, а не c... Я хочу зробити так, щоб натискання кнопки w при bпереході cзамість.
Руфус

@Woofas Ах, я бачу, що ти маєш на увазі зараз. Я залишу цю відповідь на місці, як це може бути корисно іншим.
8bittree
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.