Как изменить дату создания содержимого файла в NewFileTime
NewFileTime — бесплатная программа, изменяющая дату создания файла. Программа не требует установки на компьютер, запускается из папки. Приложение поддерживает русский язык интерфейса.
NewFileTime можно скачать с официального сайта по этой ссылке. После загрузки на компьютер, распакуйте архив с программой.
В программе NewFileTime выполните действия:
- При первом запуске примите условия лицензионного соглашения.
- Перетащите файл или несколько файлов в окне программы.
- В полях «Дата изменения», «Дата создания», «Дата доступа» установите необходимые значения.
- Нажмите на кнопку «Установить время».
- Закройте окно программы.
В свойствах файла внесены изменения, касающиеся даты создания, изменения или открытия файла.
Сохраните файл с помощью Vim или Vi и выйдите из редактора.
Vim или Vi — популярный текстовый редактор среди системных администраторов Linux и разработчиков программного обеспечения. Vim предустановлен в основных дистрибутивах Linux и macOS. Текстовый редактор Vim используется для редактирования файлов конфигурации или программ. В этом руководстве вы узнаете, как сохранить файл в Vim или Vi и выйти из редактора.
Режим Vim/Vi
Текстовый редактор Vim имеет следующие два режима.
- Нормальный режим
- режим вставки
После запуска Vim каждый раз при запуске в обычном режиме. В обычном режиме вы можете перемещаться по файлу и выполнять команды Vim.
Вы можете нажать, чтобы активировать режим вставки,В обычном режиме. В режиме вставки вы можете вставлять или удалять символы, как и в любом другом текстовом редакторе. Чтобы вернуться в обычный режимКлюч.
Как открывать/создавать файлы в Vim или Vi
Открывать и редактировать файлы в Vim очень просто. Чтобы открыть файл, просто введитеЗатем следует имя файла, который нужно создать или отредактировать.
Основной синтаксис для открытия файла в текстовом редакторе Vim выглядит следующим образом:
vim filename.txt
Вы можете открыть файл demofile.txt в редакторе Vim, выполнив следующую команду.
vim demofile.txt
Вывод выглядит следующим образом:
Как сохранить файлы с помощью Vim или Vi
Нажмите, чтобы сохранить файл в Vim или Viс последующимКлюч без завершения файла. Выполните следующие действия, чтобы сохранить файл:
- Если тыследующее нажатиеКлюч для входа
- затем введитеЗаписать изменения в файл.
- Наконец попалОтправьте все изменения.
Как сохранить файл и выйти с помощью Vim или Vi
Нажмите, чтобы сохранить и закрыть файл в текстовом редакторе Vim или Vi.с последующимКлюч. Чтобы сохранить файл и выйти, выполните следующие действия:
- Если тыследующее нажатиеКлюч для входа
- затем введитеЗаписать изменения в файл.
- Наконец попалОтправьте все изменения и выйдите из Vim.
Как отменить все изменения и выйти из Vim
Нажмите, чтобы выйти из текстового редактора Vim или Vi без сохранения изменений.с последующимКлюч. Чтобы сохранить файл и выйти, выполните следующие действия:
- Если тыследующее нажатиеКлюч для входа
- затем введитеЗаписать изменения в файл.
- Наконец попалОтправьте все изменения и выйдите из Vim.
Помощь Vim
Вы можете узнать больше о командах Vim, введя следующую команду в терминале:
vimtutor
запускатьВыполните следующую команду на французском языке.
vimtutor fr
Заключение
В этом руководстве вы узнали, как сохранить файл в Vim или Vi и выйти из редактора. Если у вас есть какие-либо вопросы по этому поводу, пожалуйста, прокомментируйте ниже.
Перемещение по файлу
В Vim для перемещения курсора по содержимому файла не обязательно, даже не нужно, переключаться в режим вставки (когда нажимается i). Следует оставаться в нормальном режиме.
Если вы владеете слепым методом печати на клавиатуре, то пальцы правой руки находятся на клавишах j, k, l и точке с запятой/двоеточии. Нажимая j, то есть наиболее удобным указательным пальцем, вы будете перемещать курсор вниз строка за строкой. Нажимая k, вверх. Клавиша l перемещает курсор вправо. Для перемещения влево необходимо сместить указательный палец на h и нажимать эту клавишу.
При выработке навыка перемещение с помощью h, j, k, l удобнее, но если вы планируете использовать Vim только в редких случаях, то перемещаться можно также с помощью стрелок клавиатуры.
В Vim часто используют числовые коэффициенты. Так, если в нормальном (командном) режиме набрать число 10 на клавиатуре, а затем нажать j, то курсор сместится сразу на 10 строчек вниз. При наборе числа вы будете видеть его в строке состояния редактора.
Может быть удобнее перемещаться к строке с определенным номером. Подобное выполняется с помощью ввода числа (номера строки, к которой вы хотите перейти), после чего нажимается прописная G (Shift+g). Просто G без числа переместит курсор в конец файла.
На предыдущем скрине, если после ввода числа 5 вместо команды j дать команду G, то курсор окажется в строке , потому что она пятая по счету от начала файла.
В длинных текстовых файлах определить на глаз номер той или иной строки сложно. Чтобы в Vim включить нумерацию строк, следует в командной строке выполнить команду .
Отключение нумерации – .
Часто требуется найти в файле место, в котором содержится определенное слово или фраза. Чтобы начать поиск, надо в командном режиме ввести слэш (косую черту). Вы перейдете в разновидность режима командной строки – режим поиска. После слэша пишется искомая фраза. Уже в процессе ввода Vim подсветит первое совпадение при поиске вниз от текущей позиции курсора.
После нажатия Enter вы сможете выполнять другие команды. Например, отредактировать текст или удалить строку с ним. При этом Vim будет помнить исходную фразу. Чтобы продолжить ее поиск (фраза может встречаться в файле несколько раз), надо в нормальном режиме нажимать n.
После нажатия n редактор Vim нашел в файле второе совпадение
Итак, когда вы перешли то место файла, которое хотите отредактировать, можете нажать i и приступить к делу так, как это делается в обычных редакторах: удалять символы с помощью Delete и Backspace, перемещаться стрелками на клавиатуре, писать текст, не задумываясь сколько символов вам надо добавить или заменить, формировать новые строки нажатием Enter.
Обзор режимов Vim
Профессиональный вимер никогда не перейдёт в режим редактирования для изменения текста, а режим Insert будет использовать только для добавления текста (максимум — использует клавишу Backspace).
Большинство видео и статей про Vim на русском языке рассказывают о том, что режимов в Vim три. Частично это правда, потому что популярных режимов, которые точно должен использовать каждый пользователь редактора, действительно три: Normal mode (командный режим), Visual mode (визуальный режим), Insert mode (режим вставки). На деле их больше.
Чтобы узнать список режимов, которые доступны в версии Vim, установленной у вас на машине, открываем Vim и вводим команду :help vim-modes. Давайте попробуем.
Список режимов VimСкриншот: Skillbox Media
Перед вами на экране находится мой рабочий Vim. Ваш Vim, скорее всего будет выглядеть по-другому. Вводим :help vim-modes. Нас сразу же встречает надпись, которая прямым текстом сообщает: «Vim имеет 7 ОСНОВНЫХ режимов». Ниже видим ещё одно сообщение: «Vim также содержит 7 дополнительных режимов». В сумме выходит 14.
Быстро пройдёмся по ним.
Normal mode — русскоязычные пользователи называют его командным режимом. Командный режим включён по умолчанию, когда вы открываете редактор, однако эту настройку можно изменить. Это же Vim — в нём вы можете использовать стандартные и дополнительные команды редактора.
Visual mode — визуальный режим. В этом режиме вы можете выделять текст и применять к нему стандартные и дополнительные команды редактора. Мы подробно рассмотрим визуальный режим в этом курсе.
Insert mode — режим вставки или режим ввода. В этом режиме пользователь печатает текст. Мы подробно рассмотрим режим ввода в этом курсе.
Select mode — очень похож на визуальный режим. Разница лишь в том, что он удобен для управления с помощью мыши. Правда, мышь в Vim для меня — немного сомнительное средство, потому что её применение уничтожает все преимущества десятипальцевого метода ввода. В моём Vim этот режим не включается, так как я отключил его в настройках.
Command-line mode — режим командной строки. Почему-то про него всегда забывают, когда рассказывают про Vim. Этот режим включается, когда мы начинаем ввод в командной строке внизу экрана Vim.
Список режимов VimСкриншот: Skillbox Media
Ex mode — режим использования редактора ex. В предыдущем видео мы не упомянули, что Билл Джой перед тем, как начать разрабатывать vi, занимался разработкой строковых текстовых редакторов. Один из редакторов, разработанных им, назывался ex. Это модификация редактора em, который, в свою очередь, был модификацией редактора ed. Было принято решение оставить возможность использовать редактор ex в Vim через один из базовых режимов. Большинство фич ed в нём реализованы. Я знаю специалистов, которые вместо sed в терминале используют ex прямо из Vim, — просто потому, что им так удобнее.
Terminal mode — режим терминала. То есть вы можете, не открывая терминал вашей операционной системы, выполнить одну любую команду терминала прямо из Vim — а терминал откроется уже с результатом выполнения.
Из дополнительных режимов Vim рассмотрим только те, что используются чаще всего.
Replace mode — режим замены. То же, что и режим ввода, только каждый следующий символ будет заменяться на тот, что вы вводите прямо сейчас. Такое поведение очень похоже на то, что происходит в обычных редакторах после нажатия кнопки Insert.
Visual Replace mode — визуальный режим. Тоже режим замены, но с дополнительными фичами и возможностью управления заменой.
Insert Normal mode — даёт возможность выполнить одну команду в режиме ввода.
То есть если вы что-то печатаете, хотите выполнить какую-либо команду — например, передвинуть курсор на 5 строк ниже, — то переходите в Insert Normal mode через стандартную комбинацию Ctrl + о. Это очень ускоряет работу.
Обращаем внимание на то, что вы можете самостоятельно прочитать про возможности этих режимов в документации к Vim. Для каждого режима есть разделы Help, в которых описаны подробности и команды
Например, при вводе :help Select-mode можно почитать про режим Select.
Что такое Vim
Vim — это специализированный текстовый редактор для программистов. Он предназначен для работы с большими объёмами кода без использования мыши.
Главная особенность Vim — два режима: режим написания текста и режим команд. В первом режиме вы как обычно пишете код, а во втором молниеносно управляете им. Режимы работают параллельно друг другу и меняются по нажатию клавиш.
Главная сила — в огромном количестве клавиатурных команд, которые помогают быстро редактировать текст. Например:
dd — удалить строку, на которой вы сейчас стоите;
10dd — удалить сколько-то строк, в этом случае 10;
cw — заменить слово на другое;
w, b — курсор вперёд или назад на одно слово;
A — дописать текст в конец строки;
I — Начать вписывать текст в начало строки;
U — вернуть изменения в строке (например, если случайно стёр);
: 10,25 w temp — сохранить кусок документа в файл temp. Конкретно здесь сохранится кусок с 10-й по 25-ю строку.
И таких команд несколько десятков. Всё построено вокруг того, чтобы делать все текстовые дела молниеносно и принципиально без участия мыши.
Команды Vim, разложенные на клавиатуре
Удаление, копирование и вставка
В Vim в нормальном (командном) режиме для удаления одного символа используется клавиша x. При этом удаляется символ, на котором стоит курсор.
Если нужно удалить несколько символов, то перед тем как нажимается x вводится числовой коэффициент.
Для удаления одной строки используется комбинация dd (два раза подряд нажимается буква d). Чтобы удалить несколько строк, также используются числа.
Удаленный текст помещается в буфер обмена Vim и может быть потом вставлен в другое место файла. По-сути, удаление здесь – это вырезание.
Рассмотрим пример. Имеется файл с кодом:
print("hello") a = 10 print(a) def func(): print('f') func()
И мы хотим определение функции переместить в начало. Алгоритм действий может быть таким:
- С помощью j (или k) помещаем курсор в строку .
- Выполняем команду 3dd. Удалятся три строки: сама функция и пустая строка после нее.
- Переходим в первую строку файла: 1G.
- Нажимаем P, чтобы вставить функцию выше текущей строки (p вставляет под строкой с курсором).
Несмотря на то, что список действий может показаться большим по сравнению с интуитивным переносом текста в обычных средах разработки, зачастую при выработке навыка он выполняется быстрее. Однако от пользователя требуется больше осознанности и детализации понимания того, что он собирается делать.
Копирование одной строки выполняется командой yy. Если надо скопировать несколько строк, сначала указывается число. Например, 5yy скопирует пять строк. Ту, в которой находится курсор, и четыре строки ниже.
Если нужно скопировать определенное количество слов, то
- курсор устанавливается на первый символ первого копируемого слова,
- вводится y,
- указывается количество копируемых слов,
- нажимается w (word – слово).
Комбинация yw копирует одно слово.
Скопировать один символ можно комбинацией yl, пять символов – y5l. Клавиша l здесь соответствует направлению движения. Вспомним, что сама по себе она перемещает курсор вправо.
Вышесказанное работает и для удаления нескольких слов или символов. В этом случае вместо y используется d.
Если вы попытаетесь скопированный таким образом в Vim текст вставить в другую программу, ничего не выйдет. В Vim работает свой буфер обмена, отдельный от системного.
Самым простым способом «обмена данными» будет выделение мышью блока текста, с последующим выбором через контекстное меню терминала пункта "Копировать". Аналогичным образом текст из внешнего источника можно вставить в Vim. Также в терминале Ubuntu работают горячие клавиши Ctrl+Shift+c, Ctrl+Shift+v.
Базовый поиск и замена
В Vim вы можете найти и заменить текст с помощью команды ( ).
Чтобы запускать команды в Vim, вы должны находиться в обычном режиме, который используется по умолчанию при запуске редактора. Чтобы вернуться в обычный режим из любого другого режима, просто нажмите клавишу «Esc».
Общая форма команды замены следующая:
Команда ищет в каждой строке в и заменяет его . — положительное целое число, умножающее команду.
Если не и , заменяется только шаблон, найденный в текущей строке. Текущая строка — это строка, в которой находится курсор.
Например, чтобы найти первое вхождение строки ‘foo’ в текущей строке и заменить его на ‘bar’, вы должны использовать:
Чтобы заменить все вхождения шаблона поиска в текущей строке, добавьте флаг
Если вы хотите найти и заменить шаблон во всем файле, используйте процентный символ в качестве диапазона. Этот символ указывает диапазон от первой до последней строки файла:
Если часть опущена, она рассматривается как пустая строка, и соответствующий шаблон удаляется. Следующая команда удаляет все экземпляры строки ‘foo’ в текущей строке:
Вместо символа косой черты ( ) можно использовать любой другой однобайтный символ, кроме буквенно-цифрового, кроме разделителя. Этот параметр полезен, если в шаблоне поиска или в строке замены есть символ «/».
Для подтверждения каждой замены используйте флаг
Нажмите чтобы заменить совпадение, или чтобы заменить совпадение и выйти. Нажмите чтобы пропустить совпадение, и или чтобы выйти из замены. Параметр заменяет совпадение и все оставшиеся вхождения совпадения. Для прокрутки экрана вниз используйте , а для прокрутки вверх используйте
Вы также можете использовать регулярные выражения в качестве шаблона поиска. Приведенная ниже команда заменяет все строки, начинающиеся с ‘foo’ на ‘Vim is the best’:
Символ (каретка) соответствует началу строки, а Соответствует любому количеству любых символов.
Чем хорош Vim?
Надо сразу сказать, что популярность Vim обоснована не только одной лишь верой в святость редактора и его преклонным возрастом. Да, эти факторы имеют значение, но в основе все же лежит рабочая идея и богатая функциональность.
Эффективность
Мы еще поговорим об основных концепциях Vim, когда затронем его философию, но главная причина любви к Vim – его эффективность.
Досконально изучив инструмент и натренировавшись в его использовании, вы становитесь на голову выше других спецов, потому что попросту тратите меньше времени на выполнение рутинных задач. Быстрее удаляете строки, быстрее перемещаетесь по коду, быстрее вносите изменения в разных участках файла и приложения целиком. При этом тратите не только меньше времени, но и меньше сил.
Вездедоступность
Вы учите Vim один раз и пользуетесь им везде. Независимо от выбранной ОС, у вас всегда будет доступ к Vim, и он будет таким же, как Vim в любой другой системе (если, конечно, вы не обвешаете редактор на своем ПК плагинами и темами).
Кому подходит
Vim считается нестандартным инструментом со множеством недостатков:
- его сложно и долго изучать, поскольку без использования основных команд сам по себе редактор не даёт прироста в скорости;
- у него нет коробочной версии, чтобы можно было установить и сразу решать большинство программистских задач;
- все доступные плагины работают хуже тех, что предлагает любая современная среда разработки.
Vim однозначно не подходит руководителям и тем разработчикам, которые большую часть времени занимаются организационными задачами и мало кодят — не получится быстро редактировать код, если постоянно не тренироваться.
Ещё Vim не подходит новичкам, которые только записались на курсы и ничего не знают о выбранной технологии — нужны хотя бы базовые навыки программирования, чтобы не допускать грубых ошибок при написании кода. Vim тебя не корректирует.
Если вас не испугали перечисленные недостатки и ваша работа связана с постоянным кодингом, то Vim может стать вашим незаменимым помощником.
Комментарий типичного вимера. Если узнали себя — однозначно стоит попробовать. Источник
Визуальный режим
В этом видео мы поговорим про визуальный режим в Vim, а также посмотрим на разницу между визуальным режимом и режимом выделения.
Вообще, визуальный режим помогает изменять большие блоки текста. Для перехода в визуальный режим из командного нажимаем v. Для выхода — Esc. После входа в визуальный режим все передвижения с помощью клавиш навигации будут изменять выделение текста. При этом в визуальном режиме будут работать не только hjkl, но и почти все остальные способы навигации. Например, при нажатии 10j выделятся 10 строк вниз от текущего положения курсора. После выделения вы можете исполнять команды из командного режима.
Например, чтобы заменить переменную user на admin, нажимаем v, переходим к концу функции и через двоеточие используем те же команды, что и в командном режиме: :s/user/admin/g. Замена произошла только в выделенной области. Если у вас есть команды для комментирования и раскомментирования кода, в этом режиме можно использовать и их. Применяться они будут только к выделенной области.
Визуальный режим
Режим выделения работает практически так же — только в визуальном режиме выделяются строки целиком, а с помощью режима выделения вы можете управлять прямоугольными блоками кода.
Он подходит для некоторых особенных юзкейсов — допустим, если у меня есть CSV-файл, в котором содержатся имена, номера телефонов и какой-то неизвестный мне ID, а нам нужно вытянуть оттуда только имена и номера телефонов.
Я могу написать команду в командном режиме, а перейти в режим выделения с помощью Ctrl + v. Потом выделяю на первой строке ID и ввожу 10000j. После этого нажимаем x — и вуаля, всё удалилось. Наглядно, понятно, быстро, и не надо придумывать регулярное выражение.
В целом визуальный режим и режим выделения можно заменить другими режимами Vim или макросами, о которых мы поговорим в следующих видео. Однако эти режимы помогают удобнее и быстрее выполнять ряд специфических операций.
Дальше — больше
Приведенной выше информации вполне достаточно, чтобы открывать, редактировать и сохранять файлы в текстовом редакторе Vim, однако у него есть возможности, которые могут существенно упростить и ускорить работу. Стоит начать с пояснения: Vi был одним из первых визуальных текстовых редакторов, однако начиная с определенной версии программный продукт стал доступен только под коммерческой лицензией. Энтузиасты начали разрабатывать свои аналоги этого текстового редактора, одним из которых является Vim (сокращение от Vi Improved — Vi усовершенствованный). Vim получил широкое распространение в *nix-дистрибутивах и при запуске команды vi в консоли вероятнее всего откроется именно он.
Прежде всего нужно понять, что Vim может работать в нескольких режимах, каждый из которых обладает своими особенностями и набором поддерживаемых функций. Сразу после запуска редактора вы окажетесь в обычном режиме (normal). Здесь можно не только перемещать курсор по тексту, но и выделять/удалять/копировать/вставлять как отдельные символы, так и целые блоки текста. Эти задачи выполняются нажатием соответствующих букв и цифр (причем регистр букв имеет значение), точка отсчета — текущее положение курсора. Рассмотрим навигацию по файлу:
- h — смещение курсора на один символ влево;
- j — смещение курсора на один символ вниз;
- k – смещение курсора на один символ вверх;
- l – смещение курсора на один символ вправо;
- w – смещение курсора в начало следующего слова в данной строке;
- b – смещение курсора в начало предыдущего слова в данной строке;
- G – переместить курсор в конец файла;
- gg – вернуться в начало файла.
Действия навигации также можно совмещать с цифрами, например, комбинация 3w сместит курсор вперед на три слова, а 5k на пять строк вверх.
Часто используемые операции c текстом:
- x — удалить символ под курсором;
- d — удалить символы/строки;
- dd — удалить строку целиком;
- D — удалить символы от текущего положения курсора до конца строки;
- v — включить режим выделения текста;
- y — скопировать символы/строки;
- yy — скопировать строку целиком;
- p — вставить символы/строки;
- u — отменить последнее действие.
Функции удаления и копирования требуют дополнительного пояснения, ведь при нажатии d или y вроде бы ничего не происходит. Дело в том, что редактор ожидает дальнейших указаний — сколько строк символов нужно удалить/скопировать и в каком направлении от текущего положения курсора вести отсчет. Чтобы удалить пять символов вправо от курсора, нужно последовательно нажать d5l, чтобы скопировать три строки, следующие после курсора — y5j. Если имеется выделенный текст, для его копирования достаточно нажать y.
Имеется в Vim и функция поиска:
- /шаблон — все вхождения набора символов, указанного после (слэша) будут подсвечены в тексте;
- n — сместить курсор к следующему вхождению;
- N — сместить курсор к предыдущему вхождению.
Другой режим работы Vim — режим редактирования. Переключиться в него можно несколькими способами:
- i — режим вставки (INSERT), ввод начинается с позиции курсора;
- a — режим вставки (INSERT), ввод начинается с позиции, следующей за курсором;
- A — режим вставки (INSERT), курсор перемещается в конец текущей строки;
- R — режим замены (REPLACE), все вводимые символы будут последовательно заменять находящиеся под курсором.
Если нужно заменить всего один символ, находящийся под курсором, достаточно нажать r и нужный символ — замена будет произведена без перехода в режим редактирования. Внизу экрана появляется соответствующий индикатор режима — INSERT или REPLACE. Вернутся в общий режим можно нажатием кнопки Esc (индикатор должен пропасть).
Еще один режим работы Vim — командный. Переход в него осуществляется из общего режима нажатием (двоеточия). Соответствующий индикатор появляется в нижнем левом углу окна, после чего можно вводить команды и их сочетания.
- :q — выйти из редактора;
- :q! — выйти из редактора без сохранения изменений в файле;
- :w — сохранить изменения в файл;
- :wq — сохранить изменения и закрыть редактор;
- :r имя_файла — добавить содержимое указанного файла в редактируемый;
- :r! команда_консоли — выполнить команду и добавить ее вывод в файл.
Установите утилиту Vim:
Сразу после входа в систему из учетной записи root или любой учетной записи системы Linux перейдите в верхний левый угол в области «Activity». Там у вас будет строка поиска. Введите слово «terminal» в эту область поиска и нажмите «Enter» с клавиатуры. Вы также можете использовать сочетание клавиш Ctrl + Alt + T, чтобы открыть его. Теперь вы должны проверить, установлен ли текстовый редактор Vim в вашей системе Linux или нет. Для этого вам нужно попробовать следующую команду «vim» в терминале. Экран вывода показывает, что он еще не установлен, а также предоставляет некоторые команды для его установки. Следовательно, вы должны сначала установить его, чтобы работать с ним.
$ vim
Итак, чтобы установить редактор Vim в вашем дистрибутиве Linux, вы должны опробовать указанную ниже команду в своем командном терминале. В процессе установки требуется пароль учетной записи root, чтобы вносить изменения в систему. Поэтому вам необходимо ввести пароль рядом со строкой: пароль для account_name и нажать «Enter» с клавиатуры. Это запустит процесс установки.
$ sudo apt install vim
Между тем, он подтвердит действие установки, задав вопрос в середине процесса установки, например, вы хотите продолжить? [Y/N]. Чтобы установить редактор Vim, введите на клавиатуре клавишу «Y» или нажмите кнопку «N», чтобы остановить выполнение. Когда мы нажали клавишу «Y», он снова начал работать над установкой Vim.
Устройтесь поудобнее и расслабьтесь, пока настройка будет завершена.
Снова попробуйте команду «vim», как показано ниже.
$ vim
Как установить Vim и начать им пользоваться?
Впоминаем, что Vim по умолчанию установлен во всех популярных операционных системах, и сразу же отметаем пункт с установкой. Не нужно ничего скачивать или устанавливать. Достаточно запустить Vi и выбрать файл, который нужно с помощью него открыть.
Для этого:
Запускаем терминал в Linux и macOS или программу PowerShell в Windows. Вводим команду:
cd \[путь/до/папки/с/файлом]
Затем запускаем редактор с помощью команды:
vi \[путь/до/файла/название-файла.js]
Перед вами появится текст выбранного файла. По умолчанию в нем не будет ни подсветки синтаксиса, ни автодополнения, ни других привычных вещей. Вас ждет голый текст и непривычное управление.
На этом моменте и начинается знакомство с Vim.
Базовые клавиши для управления
Для начала нужно освоиться в управлении и понять, что можно делать в Vim, а чего нельзя. Чтобы перемещаться по тексту, используем клавиши H (влево), J (вниз), K (наверх), и L (вправо).
Никто не запрещает использовать для перемещения курсора клавиши-стрелки, но такой подход рушит концепцию Vim. Лучше сразу привыкать к более каноничному способу перемещения по тексту.
Чтобы удалить текст, мы используем клавишу X. Для выделения текста нужно перейти в визуальный режим при помощи клавиши V.
А чтобы ввести текст, переходим в режим INSERT. Это можно сделать несколькими способами, но вот два основных:
-
Нажатие на клавишу I, чтобы начать ввод текста прямо на месте курсора.
-
Нажатие на клавишу O, чтобы начать ввод на новой линии.
Для выхода из режима INSERT, нажимаем на кнопку Esc или комбинацию клавиш Ctrl + {.
Продвинутые пользователи переназначают Esc на другие комбинации клавиш, потому что на современных клавиатурах Esc находится слишком далеко и к ней приходится тянуться, а это противоречит концепции Vim.
Чтобы скопировать текст, используем клавишу Y, а чтобы вставить – P.
Модификаторы команд
Большая часть опций в Vim реализуется через комбинации клавиш. Попытавшись набрать какой-то текст в режиме Command, вы увидите, что в командной строке внизу окна появляются символы, но ничего не происходит, если вы не попадете в какую-либо команду.
Например, если ввести в это поле dd, то Vim удалит строку, на которой расположен курсор. Если ввести gg, то курсор перескочит в начало файла и т.п. К командам можно добавлять цифры, тогда она будет применяться несколько раз. 5dd – удалить не одну линию, а сразу 5.
Чтобы закрыть Vim, нужно ввести команду :wq. Она запишет внесенные изменения и вернет вас в терминал. Чтобы изменения не сохранялись, надо ввести :q!.
Краткий референсный список команд
- 7j – сместит курсор на 7 строк вниз.
- w – сместит курсор на одно слово вперед.
- G – сместит курсор в конец документа.
- dw – удалит одно слово.
- dt< – удалит текст вплоть до символа <.
- cc – удалит весь контент со строки и переведет редактор в режим INSERT.
- . – повторно активирует последнюю выполненную команду.
- /function – найдет в тексте слово function (все его повторения).
С полным списком можно ознакомиться во встроенном обучающем приложении или в документации к Vim.
Управление интерфейсом
Помимо команд для работы с текстом, в Vim есть отдельный список команд для взаимодействия с внешними файлами и интерфейсом. Здесь я опишу только две из них, чтобы вы поняли идею.
-
:split – поделить редактор на два окна. Такой режим можно использовать как для просмотра одного документа в двух разных местах, так и для параллельного редактирования нескольких документов.
-
:edit – позволяет выбрать файл, который мы будем редактировать.
Базовая конфигурация
Универсального конфигурационного файла для Vim, который подошел бы всем, не существует. Все равно придется самостоятельно подбирать для себя удобный набор параметров и расширений.
Но есть пара опций, которые нужно изменить сразу, чтобы Vim ощущался более канонично и работал так, как это подразумевалось 50 лет назад.
Открываем конфигурационный файл при помощи команды:
vi ~/vim/.vimrc
-
Внутри прописываем текст inoremap jj <ESC>. Эта директива заменит нажатие ESC на команду jj. Это более естественный и удобный способ выхода из INSERT-режима.
-
Так как мы часто используем клавишу Ctrl внутри Vim, надо переназначить ее на что-то близкое к home-блоку клавиатуры, например на Caps Lock.
- Затем меняем базовый список директив для отображения количества линий, включения отображения подсветки синтаксиса и т.п.
syntax on # highlight syntax set number # show line numbers set noswapfile # disable the swapfile set hlsearch # highlight all results set ignorecase # ignore case in search set incsearch # show search results as you type
Самый странный редактор
На первый взгляд Vim выглядит очень и очень странно. Знакомство с ним сопровождается страшными мучениями, когда ты просто не можешь понять, что происходит. Редактор либо вообще не реагирует на нажатия клавиш, либо ведет себя крайне неадекватно. Ты пишешь слово door, а вместо этого Vim переходит на новую строку и вставляет or. Ты стираешь эту галиматью и снова пробуешь что-то написать — и, о чудо, на экране действительно появляется текст.
А потом его опять начинает глючить.
Спустя несколько попыток разобраться, как это работает, и бесчисленное множество матерных слов ты идешь в интернет и узнаешь, что Vim — двухрежимный редактор. Писать текст здесь можно только в режиме ввода (INSERT), для перехода в который следует нажать кнопку i или Insert.
Основной же режим, для выхода в который используется Esc, здесь предназначен для ввода, как тебе на первый взгляд кажется, хоткеев. Причем состоять они могут всего из одной клавиши: w — передвигает курсор к следующему слову, — в начало строки, $ — в конец строки, A переводит курсор в конец строки и переключает редактор в режим ввода, u — аналог Ctrl-Z в нормальных редакторах.
Погуглив еще немного, ты обнаруживаешь, что есть также «хоткеи» из двух и более последовательных нажатий. Такие, как, например, dd, который удаляет всю строку, и dw, удаляющий слово, gg и GG, которые перемещают курсор в начало и конец документа.
Немного привыкнув, ты уже можешь кое-как прыгать между режимами и вводить эти странные хоткеи — они даже начинают казаться тебе удобными, но один вопрос все-таки тебя не покидает:
— Зачем здесь эти режимы?!
«Хоткеи» Vim действительно удобны благодаря своей лаконичности, но разве необходимость переключаться между режимами не убивает все их удобство? Разве не проще нажимать пусть и требующие больше движений горячие клавиши в нормальных редакторах, чем мотаться взад-вперед между режимами? Да, может быть, сорок лет назад, когда на клавиатурах не было Ctrl и Alt, это и было оправданно, но сейчас-то зачем?
Так и заканчивает знакомство с Vim среднестатистический пользователь. Некоторое время он, конечно, еще потратит на то, чтобы найти выход, но затем забудет, как страшный сон, и вернется к своему любимому Sublime. А уж в условиях сурового сервера и nano сойдет.
Почему так происходит? По одной простой причине: для работы с Vim нужна совсем другая система мышления, переключиться на которую мало кому удается сразу.
23 мая 2017 года вопрос «Как выйти из Vim?» набрал один миллион просмотров на Stack Overflow
Конкуренты Vim
Фанатам Vim ведь нужно с кем-то ругаться на форумах. Для этого нужны редакторы с иной идеологией, и таких хватает. Причем речь идет не о современных решениях вроде WebStorm. Речь о таких же консольных редакторах, но с иным управлением.
-
nano – очень популярный редактор. Известен почти так же, как и Vim, потому что доступен почти на всех операционных системах, включая macOS.
-
Emacs – в ранних итерациях запускался в консоли и был одним из первых с ныне привычной системой управления.
-
slap – что-то среднее между nano и vim. С полноценной поддержкой мыши для тех, кто все же не может отказаться от нее и не готов учиться работать только с клавиатурой.
КАК ИСПОЛЬЗОВАТЬ РЕДАКТОР VIM
Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:
$ vim опции имя_файла
Или:
$ vi опции имя_файла
Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:
- +номер — переместить курсор к указной строке после запуска.
- +/шаблон — выполнить поиск по шаблону и переместить курсор к первому вхождению
- «+команда» — выполнить команду после запуска программы
- -b — двоичный режим, для редактирования исполняемых файлов.
- -d — режим поиска различий в файлах, нужно указать несколько файлов для открытия.
- -g — графический режим.
- -n — не использовать автосохранение для восстановления файла при сбое.
- -R — режим только для чтения.
- -w — сохранить все действия в файл.
- -x — шифровать файл при записи.
- -C — режим совместимости с Vi.
Круто, правда? Но это только начало. Опции ничего по сравнению с командами редактора.