Реклама

Vim против всех: редактор, в который можно войти, но нельзя выйти

#Сценарий #Человек #Windows #Next #Курсор
Vim против всех: редактор, в который можно войти, но нельзя выйти

Сценарий повторяется с завидной регулярностью. Человек ставит Git for Windows, жмет Next во всех окнах установщика (включая то, где мелким шрифтом предлагается выбрать редактор по умолчанию), через неделю делает коммит, забыв указать сообщение прямо в команде, и оказывается перед черным экраном, вдоль левого края которого сверху вниз тянется столбик тильд. Курсор мигает в пустой первой строке, ниже идут строки с решеткой в начале, а внизу висит имя какого-то служебного файла с количеством строк и байтов. Кнопок нет, меню нет, крестика в углу тоже нет, поэтому пальцы делают то, что делают в любой консоли, и набирают exit. Читать далее

Сценарий повторяется с завидной регулярностью. Человек ставит Git, жмет Next во всех окнах установщика (включая то, где мелким шрифтом предлагается выбрать редактор по умолчанию), через неделю делает коммит, забыв указать сообщение прямо в команде, и оказывается перед черным экраном, вдоль левого края которого сверху вниз тянется столбик тильд. Курсор мигает в пустой первой строке, ниже идут строки с решеткой в начале, а внизу висит имя какого-то служебного файла с количеством строк и байтов. Кнопок нет, меню нет, крестика в углу тоже нет, поэтому пальцы делают то, что делают в любой консоли, и набирают exit.

После этого на экране происходит нечто странное, хотя каждое действие редактора строго логично. Буква e в Vim означает переход в конец следующего слова, и курсор прыгает с пустой строки на решетку во второй строке, потому что одиночный символ пунктуации тоже считается словом. Буква x удаляет символ под курсором, и решетка исчезает. Буква i переключает редактор в режим вставки, а t наконец-то печатается как обычная буква. В итоге служебная строка «# Please enter the commit message for your changes», которую Git собирался выбросить как комментарий, превращается в «t Please enter the commit message for your changes» и становится полноценной частью будущего коммита, а внизу экрана загорается надпись INSERT.

Теперь редактор в режиме вставки, и все, что человек набирает дальше (quit, еще раз exit, :q, отчаянное help), аккуратно ложится в текст коммита. Ctrl+C в старых версиях…

Ре…