Ответ 1
Фактически вы можете использовать 'viper-forward-word
(require 'viper)
(global-set-key (kbd "M-f") 'viper-forward-word)
(global-set-key (kbd "M-b") 'viper-backward-word)
Каким будет самый простой способ иметь такое же поведение, что и в vim для навигации по словам и назад? В vim, когда вы нажимаете "w
", он перемещает курсор вперед на одно слово, где слово состоит из последовательности букв, цифр и символов подчеркивания или последовательности других непустых символов, разделенных пробелом (пробелы, EOL). С другой стороны, в emacs он пропускает до конца следующего слова, а слово определяется для каждого режима в таблице синтаксиса.
Например: имея курсор в начале строки, следующий показывает, где vim помещает курсор, когда вы выполняете операцию forward-word
( "w
" ):
opt1.arg = opt2.arg
^ ^^ ^ ^ ^^ ^
В emacs это похоже на:
opt1.arg = opt2.arg
^ ^ ^ ^ ^
Это действительно зависит от одного предпочтения, но я предпочитаю стиль vim лучше, и мне было интересно, какой самый простой способ иметь то же самое в emacs. Я думаю, что я не один, кто переключился с vim на emacs, так что, возможно, у кого-то уже есть решение, идеально для kill-word
и backward-kill-word
:)
Я знаю, что вы можете получить что-то подобное комбинацией M-f
, M-b
и т.д., но это не главное. Я также не хочу начинать обсуждение, какой подход лучше - topis хорошо обсуждается в здесь.
Фактически вы можете использовать 'viper-forward-word
(require 'viper)
(global-set-key (kbd "M-f") 'viper-forward-word)
(global-set-key (kbd "M-b") 'viper-backward-word)
В основном дубликат этого, в котором говорится:
(require 'misc)
Затем привяжите все ключи, которые вы хотите, к forward-to-word
и backward-to-word
. Для убийства создайте несколько простых функций, которые обертывают эти функции и убивают.
Я не знаю, почему ответ jpkotta был удален, но здесь он снова:
У меня есть второстепенный режим, который изменяет текстовые команды для работы с изменениями синтаксиса (а также CamelCaseSubwords). Это может быть немного слишком мелкозернистым для некоторых вкусов, но я считаю, что я в основном когда-либо использовал одно движение символов.
@mods, я не знаю, почему этот ответ будет удален, поэтому, если вы также захотите удалить этот ответ, я буду благодарен за объяснение.