Вопрос или проблема
Недавно я перешел с Vim на Sublime. Я заметил некоторые отличия: когда я сворачиваю код в Sublime, он автоматически выбирает этот код, и мне нужно нажимать Esc, чтобы отменить выбор.
Более того, если я перемещаю курсор вверх и вниз сразу после сворачивания кода (например, zcEscjk), этот код снова сворачивается, это довольно неприятно. Могу я это исправить?
Я использую Sublime Text 3.
Такая же проблема, но NeoVintageous работал, когда Vintageous не сработал.
Ответ или решение
Переход с Vim на Sublime Text может вызвать некоторые трудности, особенно когда дело касается таких привычных функций, как сворачивание кода. Если вы хотите настроить Sublime Text 3 так, чтобы он вел себя более похоже на Vim при работе со сворачиванием кода, вот несколько шагов, которые помогут вам это сделать.
1. Установите плагин Vintageous
Vintageous — это плагин, который предоставляет поддержку управления редактором с помощью командной строки Vim (включая режимы визуализации и замены) в Sublime Text. Чтобы установить Vintageous:
-
Откройте Sublime Text 3.
-
Перейдите в меню View > Show Console.
-
Вставьте следующий код для установки Package Control (если он еще не установлен):
import urllib.request,os,hashlib; h = 'fab8da2bf29a7d61ae49325dd2cfdc2d' + 'e67d9316d37f6c0b8496c02e9edcf0b2'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler())); print('Error: Invalid checksum, please manually install Package Control from https://sublime.wbond.net/') if not os.path.exists(os.path.join(ipp, pf)) or hashlib.md5(open(os.path.join(ipp, pf), 'rb').read()).hexdigest() != h else urllib.request.urlretrieve('http://sublime.wbond.net/' + pf, os.path.join(ipp, pf))
-
После установки Package Control, откройте командную палитру с помощью
Ctrl + Shift + P
, введитеInstall Package
и выберите Package Control: Install Package. -
Затем найдите и установите Vintageous.
2. Настройте поведение сворачивания кода
Чтобы конфигурировать поведение сворачивания кода в Sublime Text и сделать его более похожим на Vim, выполните следующие шаги:
-
Перейдите в Preferences > Key Bindings, чтобы открыть файл с пользовательскими сочетаниями клавиш.
-
Добавьте следующие строки в пользовательский файл настроек, чтобы изменить поведение сворачивания:
[ { "keys": ["z", "c"], "command": "fold", "context": [ { "key": "selector", "operator": "equal", "operand": "source.js, source.python, source.html, source.css" } ]}, { "keys": ["z", "o"], "command": "unfold", "context": [ { "key": "selector", "operator": "equal", "operand": "source.js, source.python, source.html, source.css" } ]}, { "keys": ["escape"], "command": "exit_insert", "context": [ { "key": "setting.command_mode", "operator": "equal", "operand": true } ]} ]
-
Убедитесь, что добавленные сочетания клавиш не конфликтуют с другими командами.
3. Изменение поведения курсора после сворачивания
Чтобы предотвратить случайное раскрытие свёрнутого кода при перемещении курсора с помощью клавиш j
и k
, вы можете внедрить дополнительные настройки или использовать другой плагин, который не будет переключать состояние сворачиваемого блока.
Popper-Plug — это один из таких плагинов, который может помочь в изменении поведения курсора. Установите его, как описано выше, и настройте его параметры в соответствии со своими предпочтениями.
4. Альтернативы и рекомендации
Если вы сталкиваетесь с трудностями в работе Vintageous, вы также можете попробовать NeoVintageous, который, как показано в вашем сообщении, работал лучше для вашего случая. Установка производится аналогично через Package Control.
Заключение
Хотя процесс перехода с Vim на Sublime Text может быть сложным, вы можете добиться привычного поведения работы со сворачиванием кода с помощью вышеописанных шагов. Не забудьте настроить все плагины и сочетания клавиш в соответствии с вашими потребностями, чтобы обеспечить удобство работы. Если у вас возникнут дополнительные вопросы, сообщите об этом, и мы помогем вам настроить редактор так, как вам необходимо.