Чи можу я взагалі використовувати клавішу `<cmd>` у терміналі Vim?


22

Випливаючи з іншого мого останнього запитання: Як я картографую <cmd> - <shift> -f, щоб запустити плагін Ack у Vim?

Чи можливо взагалі використовувати <cmd>ключ у Vim?

Якщо Vim не розпізнає ключ, чи можна перезавантажити ключ поза Vim (якось?) На щось інше і відобразити цей ключ у Vim?

Я використовую iTerm 2 на Lion з Vim 7.3.

Спасибі!

Відповіді:


12

<D-> працює лише в MacVim.

Швидкий google поверне купу хаків та сторонніх рішень. Усі рішення, які я знаю, або працюють у всій системі, або стосуються додатків: якщо ви Cmdперезавантажуєтесь лише в iTerm2, як ви збираєтеся відкрити нове вікно чи нову вкладку? З… з… той… МОЗАМ?

Я не можу уявити вагомих причин перезавантажити Cmdключ на що-небудь на Mac. Це було б божевільно.

Vim не TextMate або будь-який інший редактор, який ви використовували раніше. Немає можливості безперешкодно передати всі свої старі звички, вкажіть пробіл.

Замість того, щоб витрачати свій час, намагаючись перетворити Vim та ваш термінал на щось таке, чого немає і не може бути, ви повинні навчитися розумно користуватися та налаштувати Vim. Усі ваші комбінації Cmd+ Shift+ Ctrl+ Altне приведуть вас нікуди. Особливо в терміналі, де Altчасто проблематично і Cmdнепридатно.

Подумайте про використання <leader>( :help leader):

  • це портативний на кожній платформі
  • він менш схильний до конфліктів з вашою ОС або емулятором терміналу
  • це відкриває багато легких для запам'ятовування можливостей

Ха-ха, дякую скупість, зараз набагато чистіше.
romainl

Дякую за відповідь. Я чув про це, <leader>але не був впевнений, як це слід використовувати. Я погоджуюся з вашою думкою щодо переносимості, це частина причини, що я переїжджаю до Vim. Спасибі.
jordelver

Ви можете Cmdзробити Controlперезавантаження в iTerm2, а потім у тому ж вікні додати ярлики, щоб відкрити нову вкладку і ^tт. Д. Потім все працює!
Шон Кларк Хесс

5

Я виявив, що в iterm2 є параметр в налаштуваннях клавіатури, щоб зробити подібне. Для прикладу нижче я відобразив команду-enter, щоб бути: wq

введіть тут опис зображеннявведіть тут опис зображення


Дякую за таке рішення. Це саме те, що я шукав. Я знаю про <Leader>, але я думаю, що деякі речі, такі як збереження файлу, повинні бути універсальними.
Дмитро Білецький

4

Для простих команд є рішення шляхом надсилання відповідного шістнадцяткового коду до терміналу. Наприклад, я хотів зберегти в vim, натиснувши cmd-s. Я відобразив cmd-sв iterm2, щоб надіслати шістнадцятковий код, 0x13який є кодом ctrl-s, а потім перейшов ctrl-sдо :wqin vim.


Як саме ти робиш таку річ? Спасибі.
nunos

Не працював для мене шістнадцятковий код 0x13: / imgur.com/RjxOoLY
michalzuber

Про те, як це зробити, дивіться фото нижче - дякую @jhickner за ідею подивитися на iTerm2
Ніл Макгілл

3

Рішенням 2016 року є використання програми з відкритим кодом Karabiner, яка дозволяє перевпорядкувати модифікатор та інші клавіші з дуже тонкою деталізацією , наприклад

  • Залиште лише ліву ⌘ Cmd або Optionклавішу.
  • Залиште ключ лише для конкретних програм, наприклад, лише в терміналі, Emacs або віртуальній машині.

Наприклад, ось як змінити ліву ⌘ Cmdклавішу, щоб діяти Ctrl лише в терміналі (а праву не ⌘ Cmd + Tabзмінити, щоб ви могли використовувати, наприклад, для перемикання між додатками):

карабін-скріншот


Дивовижно. Тепер я можу використовувати це у Vim належним чином, хоча команда + ліва команда "ліва" не "alt tab". Я можу використовувати правильну команду, але чи все-таки це можна зберегти?
meder omuraliev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.