Вим-Вену

Вим-Вену

Я настраиваю виртуализированные Linux-боксы (как локальные серверы разработки) для разработчиков в компании, которая в основном работает на Windows, и некоторые разработчики негативно отзываются о vim (помимо прочего). (Им кажется, что он в некотором роде представляет Linux/Unix и доказывает, что эта среда невероятно сложна в использовании.) Я помню, как меня впервые заставили использовать vim (системные администраторы отказались устанавливать emacs!) и сложную начальную кривую обучения, поэтому я немного сочувствую. Мне пришло в голову, что вместо того, чтобы знакомить их с ним nano(с чем они, вероятно, никогда не справятся), можно было бы настроить nano-подобные меню в vim, чтобы облегчить переход. (Я нашел очень удобный для новичков файл .vimrc, чтобы дать им, но в нем нет ничего похожего на nano-стиль меню.)

Единственная проблема в том, что единственное, что я смог найти, что утверждает, что можно настроить меню в vim (не gvim), не сработало, и мои попытки исправить проблему просто оставили меня с еще одной проблемой для решения. Прежде чем я потрачу кучу времени, я хотел бы узнать, возможно ли это на самом деле, так как информации о том, как это сделать, похоже, очень мало.

решение1

Да, это возможно. Вы можете загрузить menu.vim(определения меню gvim по умолчанию) или просто начать с нуля и создать свои собственные, а затем получить к ним доступ через :emenu. Это не даст вам всегда видимых меню в стиле nano; это даст вам возможность перемещаться по меню с помощью автодополнения командной строки.

Если у пользователя нет vimrc, вам следует начать с отключения совместимости с vi:

:set nocompatible

Включить интеллектуальное завершение командной строки <Tab>(включить вывод всех возможных вариантов и навигацию по результатам с помощью <Up>, <Down>, <Left>, <Right>, и <Enter>):

:set wildmenu

Повторные нажатия позволяют переключаться между всеми подходящими вариантами:

:set wildmode=full

Загрузите меню по умолчанию (это произойдет автоматически в gvim, но не в терминале vim):

:source $VIMRUNTIME/menu.vim

После этих четырех команд вы можете вручную запустить автодополнение меню, вызвав автодополнение по :emenuкоманде, выполнив команду:emenu<space><tab>

Вы можете перемещаться по результатам с помощью клавиши Tab и клавиш со стрелками, а также клавиши Enter (она как раскрывает подменю, так и выбирает элементы). Затем вы можете сделать это более удобным, пойдя на шаг дальше и привязав сопоставление для всплывающего меню без необходимости вводить :emenuкаждый раз:

Сделайте так, чтобы сочетание клавиш Ctrl-Z в сопоставлении действовало как <Tab>интерактивное нажатие в командной строке:

:set wildcharm=<C-Z>

И создайте привязку, которая автоматически вызовет :emenuавтодополнение:

:map <F4> :emenu <C-Z>

решение2

У меня самого была проблема, что я не мог вспомнить все команды и комбинации клавиш для плагинов, которые я использую. Плюс, я хотел иметь простые способы быстрого выполнения команд без необходимости устанавливать новые сопоставления клавиш или изобретать команды для доступа к ним.

Вим-Вену

Я написал небольшойплагин меню vimчто позволяет вам определять меню для каждого типа файла, который вы можете редактировать с помощью vim. Таким образом, вы можете определить опцию меню «Компилировать» для разных типов файлов и инициировать правильные инструкции для компиляции кода в зависимости от того, какой файл вы редактируете (.py, .c, .c++, ...). Или создать подменю для команд плагина «Таблица» в файле markdown.

Посмотрите здесь: https://github.com/Timoses/vim-venu

В качестве примечания: я думаю, что каждый должен выбрать свой любимый текстовый редактор. У Vim есть небольшой барьер (который стоит изучить!). Если кто-то не хочет учиться, то vim не будет для него особо полезен.

Связанный контент