Страницы

Поиск по вопросам

Показаны сообщения с ярлыком vi. Показать все сообщения
Показаны сообщения с ярлыком vi. Показать все сообщения

четверг, 13 февраля 2020 г.

Vim: Почти полная замена всех клавиш для команд

#vim #vi


Здравствуйте, я с вимом немного знаком, умею из него выходить, но всеми возможностями
пока не пользуюсь. И у меня назрел такой вопрос: 

А нормально ли заменить почти все комбинации клавиш, хоткеи и тд?
Не скажется ли это на чем-то в дальнейшем и могут ли появится на этом пути какие-то
проблемы, как техничные, так и другие (привычка, невозможность пользоваться "нормальным"
вимом)?
И пробовал ли кто-то идти таким путем?

Вот у меня ноутбук, на клавиатуре стрелки и всякие Home/End находятся близко, так
что нужды в hjkl и подобном нет. 
Далее, w и b находятся далеко, и мне кажется, что удобнее было бы, что б клавиши
скачек по словам находились рядом (типа q и w). Ctrl + fbduye что бы листать текст
тоже как-то можно оптимизировать. И все в таком духе. 

Что скажете, насколько это труЪ и если ли смысл в тексте выше, или конфигурировать
такие базовые вещи не стоит?
    


Ответы

Ответ 1



Я как-то пытался так сделать (долго работал с SlickEdit). Бонусов особых не получил. Вернулся к стандартной конфигурации. Магия вима в неких магических сочетаниях клавиш, именно на которые заточены маны и туториалы. К примеру - v i t = - форматирует блок внутри тега. И таких комбинаций много. Переопределив комбинации клавиш сложно будет такие вещи 1 - воспроизводить; 2 - запомнить.

Ответ 2



Что касается конфигурации: представьте, что вам нужно решить какую-то задачу удаленно на чужой машине с помощью Vim (конфиги какие-нибудь отредактировать, например). Вам придется залить свою конфигурацию, потом работать, потом вернуть конфигурацию «как было». Во-первых, вы потратите дополнительное время. Во-вторых, не факт, что вам дадут доступ. И тогда вам придется работать на абсолютно непривычной раскладке. В-третьих, вы можете сломать конфигурацию, которая была. Например, окажется, что там тоже какая-то нестандартная, а бэкап сделать забыли. Так что на такое стоит идти только в случае, если это сразу приносит вам значительное повышение производительности или какое-то другое существенное преимущество. Вообще, вопрос достаточно неопределенный и зависит от того, с чем вы работаете. Если это современные высокоуровневые языки, то, на мой взгляд, наилучшая производительность будет с полнофункциональной IDE.

Ответ 3



Возьмите EMACS, с ним именно так и поступают обычно, полно примеров. Vim действительно хорош такой, как он есть.

Ответ 4



Думаю что стэк из: YouCompleteMe SnipMate ctags Vim и еще нескольких языкозависимых плагинов по вкусу на данный момент лучше, понятнее, проще, быстрее, дешевле и эффективнее, чем любая профессиональная коммерческая IDE существующая на рынке. А редактировать что-то на другой удаленной системе через встроенный vi по SSH это вообще бредовая идея. Просто используйте для этой цели частный репозиторий какой-нибудь VCS. Редактируйте нужный файл в локальном репозитории со своей удобной конфигурацией Vim. Коммитите в глобальный. С удаленной машины просто обновляете одной командой. Все. По поводу переопределения клавиш, то я использую такую схему: hjkl -> jkl; Ctrl + hjkl -> Ctrl +jkl; CapsLock -> Esc Tab -> Ctrl+k. Alt -> Ctrl Очень удобно, т.к. читерски позволяет вообще не нажимать оригинальные кнопки Esc, Enter, Tab, Backspace и Ctrl, которые расположены слишком далеко на китайских клавиатурах, установленных на большинстве домашних компьютеров.

понедельник, 25 ноября 2019 г.

Как выйти из редактора Vi или Vim?


Работал в командной строке. Попал в странный текстовый редактор, в котором не работает мышка. Вижу сообщение


  "type :quit to quit VIM"


Но команда пишется прямо в текстовый файл и не выполняется.

Что делать, как выйти?
    


Ответы

Ответ 1



Добро пожаловать в Vim! Прежде чем ввести команду, нажмите Esc. Чтобы потом подтвердить команду, нажмите Enter. Клавиша Esc переключает Vim в нормальный режим. Если в этом режиме нажать : (проверьте что установлена английская раскладка и снят CapsLock, затем одновременно нажмите Shif и ;), то символ : появится в нижней части экрана, и редактор перейдёт в режим командной строки. Это гарантирует, что вы сейчас именно вводите команду, а не редактируете файл. Помните, что регистр вводимых команд важен. У большинства команд есть укороченные версии. Необязательная часть дается в квадратных скобках: к[оманда]. Команды, данные курсивом, подходят только для Vim (не реализованы в Vi). Выйти безопасно (не срабатывает, если есть не сохраненные изменения) :q[uit] Выйти из текущего окна Vim. Если это окно — последнее, то выйти из Vim Если в текущем буфере есть не сохраненные изменения, команда не сработает. :qa[ll] Закрыть все окна и выйти из Vim. Не сработает, если хотя бы в одном буфере есть не сохраненные изменения. Выйти с подтверждением (запрашивает подтверждение, если есть не сохраненные изменения) :conf[irm] q[uit] Закрыть все окна и выйти из Vim. Запрашивает подтверждение, если есть буферы с не сохраненными изменениями. :conf[irm] xa[ll] Сохранить все изменения, закрыть все окна и выйти из Vim. Запрашивает подтверждение, если какие–либо буферы не могут быть сохранены. Записать (сохранить) изменения и выйти :wq Записать текущий буфер в соответствующий ему файл (даже если изменений не было) и закрыть окно. :wqa[ll] для всех окон. :wq! То же самое, но записывает даже файлы, отмеченные только для чтения (read-only). :wqa[ll]! для всех окон. :x[it], ZZ(но с некоторыми особенностями). Сохранить файл только если в нем ест изменения и выйти, :xa[ll] для всех окон. Отменить (и потерять) изменения и выйти :q[uit]! ZQ Выйти без сохранения, в том числе когда есть изменения в видимых буферах. Не сработает, если изменения есть также и в скрытых буферах. :qa[ll]!, :quita[ll][!] Выйти без сохранения, отменяя все изменения как в видимых, так и в скрытых буферах. Нажмите Enter чтобы выполнить введенную команду. Этот ответ все-таки не охватывает все возможные способы выйти из Vim. Полный список можно найти в документации Vim. На момент публикации все ссылки верны и ведут на англоязычную версию документации но сайт временно недоступен. Когда он поднимется, я добавлю ссылки на русскоязычную версию. Vim также имеет встроенную документацию. Чтобы ее открыть: Esc:helpEnter. Чтоб использовать русскоязычную встроенную документацию, необходимо включить русскую локализацию в настройках Vim. Это перевод собственного ответа на EN.SO. При написании использовалась документаци Vim и, в качестве ориентира и источника вдохновения, ответы других пользователей, особенно @dirvine.

Ответ 2



Выйдите лучше так: Esc затем :q! и подтвердить Enter. Замените редактор, на тот, в котором выход не вызовет затруднений: export EDITOR=notepad.exe После чего, повторите комманду, после которой попали в "незнакомый" редактор. И только если абсолютно уверены, то выйдите с сохранением изменений: Esc затем :х и подтвердить Enter.

Ответ 3



Выход с сохранением изменений в файле: Сначала жмем Esc потом :wq! потом enter Если требуется выйти без сохранения изменений, то вместо :wq! надо написать :q!

среда, 3 октября 2018 г.

Как выйти из редактора Vi или Vim?

Работал в командной строке. Попал в странный текстовый редактор, в котором не работает мышка. Вижу сообщение
"type :quit to quit VIM"
Но команда пишется прямо в текстовый файл и не выполняется.
Что делать, как выйти?


Ответ

Добро пожаловать в Vim!
Прежде чем ввести команду, нажмите Esc. Чтобы потом подтвердить команду, нажмите Enter
Клавиша Esc переключает Vim в нормальный режим. Если в этом режиме нажать (проверьте, что установлена английская раскладка и снят CapsLock, затем одновременно нажмите Shift и ), то символ появится в нижней части экрана, и редактор перейдёт в режим командной строки. Это гарантирует, что вы сейчас именно вводите команду, а не редактируете файл. Помните, что регистр вводимых команд важен.
У большинства команд есть укороченные версии. Необязательная часть дается в квадратных скобках: к[оманда]
Команды, данные курсивом, подходят только для Vim (не реализованы в Vi).
Выйти безопасно (не срабатывает, если есть несохраненные изменения)
:q[uit] Выйти из текущего окна Vim. Если это окно — последнее, то выйти из Vim. Если в текущем буфере есть несохраненные изменения, команда не сработает. :qa[ll] Закрыть все окна и выйти из Vim. Не сработает, если хотя бы в одном буфере есть несохраненные изменения.
Выйти с подтверждением (запрашивает подтверждение, если есть несохраненные изменения)
:conf[irm] q[uit] Закрыть все окна и выйти из Vim. Запрашивает подтверждение, если есть буферы с несохраненными изменениями. :conf[irm] xa[ll] Сохранить все изменения, закрыть все окна и выйти из Vim. Запрашивает подтверждение, если какие–либо буферы не могут быть сохранены.
Записать (сохранить) изменения и выйти
:wq Записать текущий буфер в соответствующий ему файл (даже если изменений не было) и закрыть окно. :wqa[ll] для всех окон. :wq! То же самое, но записывает даже файлы, отмеченные только для чтения (read-only). :wqa[ll]! для всех окон. :x[it], ZZ(но с некоторыми особенностями). Сохранить файл только если в нем есть изменения и выйти, :xa[ll] для всех окон.
Отменить (и потерять) изменения и выйти
:q[uit]! ZQ Выйти без сохранения, в том числе когда есть изменения в видимых буферах. Не сработает, если изменения есть также и в скрытых буферах. :qa[ll]!, :quita[ll][!] Выйти без сохранения, отменяя все изменения как в видимых, так и в скрытых буферах.
Нажмите Enter чтобы выполнить введенную команду.
Этот ответ все-таки не охватывает все возможные способы выйти из Vim. Полный список можно найти в документации Vim
На момент публикации все ссылки верны и ведут на англоязычную версию документации, но сайт временно недоступен. Когда он поднимется, я добавлю ссылки на русскоязычную версию.
Vim также имеет встроенную документацию. Чтобы ее открыть: Esc:helpEnter. Чтобы использовать русскоязычную встроенную документацию, необходимо включить русскую локализацию в настройках Vim
Это перевод собственного ответа на EN.SO. При написании использовалась документация Vim и, в качестве ориентира и источника вдохновения, ответы других пользователей, особенно @dirvine.