2

Я разочарован в ключевых вопросах сопоставления.

На моем компьютере с Linux, если я наберу Home/End в Vim, курсор на самом деле переместится в начало /конец строки. На моем Mac, когда я нахожусь на TextEdit, если я нажимаю Fn + Left или Fn + Right, это приводит меня к началу /концу строки.

Но если я использую Vim на своем терминале Mac, то те же комбинации клавиш не работают. Зачем? Я вижу в Интернете все различные параметры шифрования, которые мне нужно вставить в .vimrc, чтобы сделать эту работу, но я не могу найти никакого объяснения для этих загадочных карт, настроек imap.

Что является основной проблемой здесь, и как я могу это исправить?

Спасибо!

3 ответа3

0

(это должен был быть комментарий, но мне не хватило места)

Я полагаю, что значительная часть различий между Linux-подходом и OS X-подходом заключается в том, что ваш традиционный * nix-бокс и большинство обычных клавиатур, как и ожидалось, не имеют клавиш fn, поэтому при разработке раскладки клавиш это предполагает, что не имеет смысла.

Vim имеет свои собственные, старые школьные сочетания клавиш Unix, которые вы можете изменять, поэтому используется старый, надежный способ, используемый Linux и большинством классических Unix-систем.

Apple контролирует все аспекты аппаратного обеспечения Mac, поэтому они могут с уверенностью предположить, что fn есть. TextEdit - только OS X, и хорошо, если перейти к началу строки, это os x ism. Клавиша fn влево / вправо для начала / конца, вероятно, является обходным решением. Вы всегда можете изменить ~/Library/KeyBindings/DefaultKeyBinding.dict чтобы заставить textedit и другие приложения со вкусом яблока работать согласованно с другими приложениями unix flacoured.

Интересно, что об этом ничего не говорится в статьях об интерфейсе пользователя OS X, поэтому довольно сложно догадаться, что думает Apple, делая это.

0

Vim отвечает на код клавиши, связанный с <End> . Поскольку на клавиатуре вашего Macbook нет клавиши <End> , этот код клавиши должен быть эмулирован некоторым образом: через fn+right. Эта комбинация работает в Macvim, поэтому, если вы используете Vim в терминале, есть вероятность, что она прерывает эту комбинацию, прежде чем Vim получит шанс получить ее.

Если бы вы использовали настоящую клавиатуру, у вас не было бы никаких причин жаловаться: Vim получает <End> и <Home> совершенно без каких-либо действий.

0

Я не уверен, если я отвечу:

В vim уже есть сопоставление ключей:

В обычном режиме нажмите ^, чтобы перейти в начало, и $, чтобы перейти в конец (подумайте о регулярном выражении)

Если вы хотите перейти в режим вставки в начале строки, введите I (Вставить)

Если вы хотите перейти в режим вставки в конце строки, введите A (Добавить)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .