Сохранение файла в текстовом редакторе Vim
vi или vim — это текстовый редактор с тремя режимами: командный режим, режим ввода и режим ex. При запуске vim или vi запускаются в командном режиме. Можно нажать клавишу Esc, чтобы вернуться в командный режим и выполнить различные команды. Чтобы создать новый файл, откройте терминал и введите: -amphtml-sizer> vi/vim всегда запускается в командном режиме. Вы можете в любой момент нажать клавишу , чтобы вернуться в командный режим.. Чтобы вставить текст, нажмите i . Чтобы сохранить и выйти из vi/vim, нажмите клавишу и введите ZZ : Чтобы просмотреть список вашего сохраненного файла используйте команду cat. Выполните: Чтобы просто сохранить файл и не выходить из командной строки, нажмите клавишу и введите
Командный режим и режим вставки
Вам нужно переключить в соответствующий режим для того, что вы пытаетесь достичь.
Командный режим является режимом по умолчанию при запуске . Если вы не знаете лучше, вы начнете пытаться печатать. Если вы случайно нажмете клавишу «i» или любую из 10 других клавиш, которые вызывают режим вставки (a, A, C, C, I, o, O, R, s и S), вы внезапно увидите, что ты печатаешь Вы сейчас в режиме вставки.
Это может показаться прогрессом, пока вы не нажмете одну из клавиш со стрелками. Если вы сделаете это, A, B, C или D появятся в качестве единственной буквы в новой пустой строке. В верхней части файла.
Все в порядке, мы получили вашу спину. Это на удивление легко, когда знаешь как. Запомните эти два нажатия клавиш: Esc переводит вас в командный режим, а «i» — в режим вставки.
Вам необходимо находиться в командном режиме, и для ввода правильной команды необходимо выйти из редактора.
Три режима работы Vim
При использовании Vim для редактирования файлов существует 3 режима работы, а именно:Командный режим, режим ввода и режим редактированияЭти три режима работы можно переключать по желанию, как показано на рисунке 1.
Командный режим
Файл нельзя редактировать в командном режиме, разрешены только удаление, копирование, вставка, отмена, использование сочетаний клавиш и другие операции. Когда файл открывается, он переходит в этот режим по умолчанию.
Режим ввода
В режиме ввода Vim можетЗаписать в файл, Аналогично вводу содержимого в документ в системе Windows.
Чтобы заставить Vim войти в режим ввода, введите i, I, a, A, o, O и другие команды вставки в командном режиме (конкретные функции каждой команды показаны в Таблице 3) и нажмите Esc при редактировании файла. Может вернуться в командный режим.
Режим редактирования
Режим редактирования используется для сохранения, поиска или замены указанного содержимого в файле.Подождитеоперационная.
Чтобы переключить Vim в режим редактирования, нажмите клавишу «:» в командном режиме. В этот момент в нижнем левом углу окна Vim появится символ «:», и вы можете ввести соответствующие команды для работы.。
Увеличение производительности
Только что мы рассмотрели, как перемещаться, сохранять и завершать работу, выполнять простое редактирование и удаление, пользоваться режимом ввода текста. С этим багажом знаний (только что показанным на шпаргалке) вы уже способны, используя Vi, справиться практически с любой задачей.
Однако, у Vi есть еще много более мощных команд. В этом разделе вы узнаете как вы’резать (cut), скопировать (copy) и вставить (paste), найти (search) и заменить (replace) текст, а так же, как использовать автоматический отступ (autoindent). Эти команды помогут Vi быть более приятным и производительным.
Дальше — больше
Приведенной выше информации вполне достаточно, чтобы открывать, редактировать и сохранять файлы в текстовом редакторе 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! команда_консоли — выполнить команду и добавить ее вывод в файл.
vi, вездесущий редактор
Потому что везде, и есть вероятность, что вы столкнетесь с этим. Вы даже можете оказаться внутри случайно. Возможно, кто-то попросит вас взглянуть на их компьютер с Linux. Вы запускаете команду, подобную , и появляется . Сюрприз, кто-то настроил редактор по умолчанию для чтобы быть .
Возможно, вы управляете системой, в которой является единственным редактором или единственным, который будет работать через удаленный сеанс SSH, и вам нужно отредактировать файл .bashrc пользователя.
Команда для запуска и открытия файла прямолинейна. Введите , пробел, а затем имя файла. Нажмите Ввод. Программа, которая запускается, может быть или , «улучшенный ». Это зависит от вашего дистрибутива Linux — например, Ubuntu использует . Все инструкции в этой статье в равной степени относятся к .
Сразу же заметная разница между и другими редакторами заключается в том, что при запуске вы не можете просто начать печатать текст. Это потому, что — модальный редактор. Редактирование выполняется в одном режиме — режиме вставки, а выдача команд — в командном режиме. запускается в командном режиме.
Если вы не знакомы с концепцией режима вставки и командного режима , это может сбить с толку. Многие команды, которые вы можете выполнить в командном режиме, влияют на набираемый вами файл. Если вы находитесь в командном режиме, но вы по ошибке пытаетесь ввести текст в файл, это плохо закончится. Некоторые нажатия клавиш будут распознаваться как команды. Эти команды могут удалять или разбивать строки, перемещать курсор или удалять текст.
И независимо от того, что вы печатаете, вы не можете найти способ выйти или выйти из редактора. Тем временем ваш файл становится довольно искаженным, и, казалось бы, случайные гудки сводят вас с ума.
Начнем с примера
Типичная сессия работы с Vim выглядит так:
#vim httpd.conf
В открывшемся редакторе:
/SSLVerif nwr1ZZ
В данном случае задачей было изменить значение определенного параметра конфигурации apache. В обычном редакторе подобный результат достигается следующими действиями:
- Открыть файл «httpd.conf»
- Открыть диалог поиска
- Ввести «SSLVerif».
- С помощью кнопки «Далее», перейти ко второму по счету вхождению искомой строки.
- Поставить курсор в нужном месте
- Удалить «0» и напечатать «1»
- Сохранить изменения
- Закрыть файл
Объяснение команд VIM:
- / — Перейти в режим поиска
- Kлавиша Enter — Искать’.
- n — Перейти к следующему вхождению искомой строки
- w — Переместить курсор к следующему слову
- r — Заменить знак под курсором
- ZZ — Сохранить изменения и выйти
- ZQ — Выйти без сохранения изменений
How to Save a File in Vim / Vi and Quit the Editor
26 Апреля 2020
|
Терминал
В этом руководстве объясняется, как сохранить файл в Vim / Vi и выйти из редактора.
Vim является предпочтительным текстовым редактором для многих пользователей, которые проводят много времени в командной строке. В отличие от других редакторов, Vim имеет несколько режимов работы, которые могут быть немного пугающими для новых пользователей.
Vim или его предшественник Vi предустановлен на MacOS и почти во всех дистрибутивах Linux. Знание основ Vim поможет вам, когда вы столкнетесь с ситуацией, когда ваш любимый редактор недоступен.
Vim режимы
Когда вы запускаете редактор Vim, вы находитесь в обычном режиме. В этом режиме вы можете использовать команды vim и перемещаться по файлу.
Чтобы набирать текст, нужно войти в режим вставки, нажав клавишу. Этот режим позволяет вставлять и удалять символы так же, как в обычном текстовом редакторе .
Чтобы вернуться в обычный режим из любого другого режима, просто нажмите клавишу.
Открыть файл в Vim / Vi
Чтобы открыть файл с помощью типа Vim, за которым следует имя файла, который вы хотите отредактировать или создать:
Другой способ , чтобы открыть файл, чтобы запустить редактор и тип , где это имя файла , который вы хотите открыть.
Сохранить файл в Vim / Vi
Команда для сохранения файла в Vim есть .
Чтобы сохранить файл без выхода из редактора, вернитесь в обычный режим, нажав , введите и нажмите .
- Нажмите
- Нажмите
Существует также команда обновления , которая записывает буфер в файл, только если есть несохраненные изменения.
Чтобы сохранить файл под другим именем, введите и нажмите .
Сохранить файл и выйти из Vim / Vi
Команда для сохранения файла в Vim и выхода из редактора есть .
Чтобы сохранить файл и выйти из редактора одновременно, нажмите, чтобы переключиться в обычный режим, введите и нажмите .
- Нажмите
- Нажмите
Еще одна команда для сохранения файла и выхода из Vim .
Разница между этими двумя командами заключается в том, что буфер записывается в файл только при наличии несохраненных изменений, тогда как буфер всегда записывается в файл и обновляется время модификации файла.
Выйти из Vim / Vi без сохранения файла
Чтобы выйти из редактора, не сохраняя изменения, перейдите в обычный режим, нажав , введите и нажмите .
- Нажмите
- Нажмите
В этом руководстве мы показали, как сохранить файл в Vim и выйти из редактора. Если вы новичок в Vim, посетите сайт Open Vim, где вы можете попрактиковаться в Vim с помощью интерактивного учебного пособия.
Step 2 Отредактируйте файл
Ваш .vimrc файл является местом, где хранятся конфигурации Vim. По мере использования Vim, в .vimrc файле будет появляться все больше пользовательских настроек
Я храню копию своего .vimrc на GitHub, но в общем, пока вы используете Vim на удаленном хосте, и не являетесь авторизированным пользователем, у вас не будет пользовательского .vimrc, поэтому очень важно быть знакомым с базовыми конфигурациями
В терминале введите команду:
vim .vimrc
Это скажет Vim открыть файл .vimrc . Этого файла может не существовать. В моем случае, я пока не нашел .vimrc .
Как вы можете видеть это пустой документ. Символ «~ » обозначает пустые строки.
Vim запускается в командном режиме (так называемый нормальный режим), не в режиме вставки. Это означает, что последующие нажатия клавиш будут интерпретироваться как команды для Vim, а не как ввод данных. Для того чтобы выйти из командного режима, вам необходимо нажать клавишу i. Это делает доступным режим вставки. Если вы нажмете a, то Vim переместит курсор на один пробел влево и запустит режим вставки там.
В левом нижнем углу, мы видим, что мы находимся в режиме вставки. Теперь мы можем печатать в нашей конфигурации. Вам понадобятся следующие строки в файле:
- syntax on
- set wrapmargin=8
- set number
Syntax on делает доступным встроенное выделение синтаксических элементов для многих языков программирования и файлов конфигурации. Set wrapmargin=8 дает нам 8-ми символьный буфер перед концом терминала и делает экран более четким.Set number просто устанавливает нумерацию строчек.
Vim и его установка
Во многих системах дистрибутива Linux обычно по умолчанию установлены текстовые редакторы vi или Vim. Centos не является исключением. В этой системе по умолчанию установлены текстовые редакторы vi, но рекомендуется использовать Vim. Если вы введете «vim» в режиме командной строки, а результат будет «Команда не найдена», это означает, что Vim не установлен в этой системе.
В CentOS используйте следующую команду для установки Vim:
Следует отметить, что при запуске этой команды иногда необходимо вручную подтвердить [y / n], как показано на рисунке 1: Когда в командной строке вводится «Vim» и отображается экран, показанный на рисунке 1, установка Vim считается успешной.
Установка
USE flags for
app-editors/vim
Vim, an improved vi-style text editor
Link console vim against X11 libraries to enable title and clipboard features in xterm | |
Add support for Access Control Lists | |
Use dev-libs/libsodium for crypto support | |
Enable cscope interface | |
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces | |
Add support for sys-libs/gpm (Console-based mouse driver) | |
Enable Lua scripting support | |
Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features) | |
Add Native Language Support (using gettextGNU locale utilities) | |
Add optional support/bindings for the Perl language | |
Add optional support/bindings for the Python language | |
Enable support for Scheme using dev-scheme/racket | |
Add support/bindings for the Ruby language | |
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur | |
Enable sound support | |
Add support the Tcl language | |
Enable terminal emulation support | |
Install vimpager and vimmanpager links |
Плагины
Категория app-vim содержит множество дополнительных спецификаций синтаксиса, плагины и прочие вещи, относящиеся к Vim.
Используйте emerge или eix, чтобы получить обзор существующих пакетов в категории app-vim:
Поиск файла
Часто нам нужно будет искать строки в файле, чаще в конфигурации, но это также может помочь с историей файлов или с чем-либо еще, что мы редактируем. Для этого вам нужно находиться в командном режиме. Если вы не уверены в каком режиме находитесь, нажмите клавишу esc, которая переведет вас в командный режим, если вы еще не находитесь в нем.
- Для простого поиска мы используем , а потом идет строка. Например, /password . Если бы мы были в конце файла, мы бы использовали ?, так используйте ?password для обратного поиска.
- Команда n повторит последний поиск вперед, а команда N повторит последний обратный поиск.
Для поиска и замены, мы используем :%s/search/replace/ . Вам нужно будет ввести.
- :%s/tcpdump/ls/ будет проводить поиск во всем файле, каждый элемент имеющий tcpdump на ls.
- :%s/myPrivEscalationScript/ls/ c будет проводить поиск во всем файле, каждый элемент только после вашего подтверждения.
Vim также поддерживает регулярные выражения таким же образом, как это делает grep.
Сохранение и редактирование
Save(сохранить) и Save as…(сохранить как…)
Мы уже видели, как используя ex-команду :q выйти из vi.
- :w – записать или сохранить файл;
- :w filename – для сохранение под другим именем;
- или :wq – сохранить и выйти.
В Vim (и других потомках Vi, типа elvis), вы можете держать открытыми одновременно несколько буферов. Введите команду
- :sp filename.txt для открытия файла filename.txt в новом окне;
- :sp (без имени файла) откроет дополнительное окно для активного буфера.
Для перехода между окнами нажмите <C-w>,<C-w> (дважды <Ctrl>+<w>). Любая из команд :q, :q!, :w и относиться только к активному окну.
Простое редактирование
Вот и подошло время заняться изучением простых команд редактирования. Рассматриваемые здесь команды считаются «простыми» из-за того, что оставляют вас в командном режиме. Более сложные команды автоматически переводят вас в режим ввода текста, позволяющий добавлять в буфер символьную информацию, набираемую на клавиатуре; их рассмотрим позднее.
- х – удаление символа под курсором;
- J – присоединение следующей стоки к текущей;
- r+символ – замена символа на символ;
- dd – удаление текущей стоки.
Повторение и удаление
Повторить любую команду редактирования вы можете нажимая клавишу <.> (точка). Если попробуете, то можете увидеть, что печать dd… удалит 4 строки, а J…… объединит семь строк. Как обычно, Vi обеспечивает вас различными удобными средствами сокращения трудозатрат.
Удалять текст вы можете также комбинируя команду d с любыми командами перемещения. Например, dw удалит часть текста от текущей позиции курсора до начала следующего слова; d) удалит вплоть до следующего конца предложения, и d} удалит весь остаток абзаца. Поэкспериментируйте с командой d и другими командами редактирования, пока не почувствуете себя с ними уверенно.
Редактирование
Редактирование выполняется посредством команд в нормальном режиме. Они очень эффективны в комбинации с командами перемещения. Любая команда из раздела перемещения может задать направление. Например, можно удалить или скопировать одно слово, указав “w” за соответствующей командой.
Рассмотрим наиболее употребимые действия.
Удаление текста
x — удалить символ на позиции курсораd — удалить в заданном командой перемещения направлении. Например, “dl” удаляет один символ справаdd — удалить строкуD — удалить все символы от положения курсора до окончания строки
Замена текста
r — заменить символ на позиции курсора заданным после команды символомc — заменить в заданном командой перемещения направлении. Например, “cb” заменяет предыдущее слово. Для набора текста на замену запускается режим вставки.C — заменить до окончания строки. Текст на замену набирается в режиме вставки.
Копирование и вставка
y — копировать в заданном далее направленииyy — копировать всю строкуY — копировать до окончания строкиp — вставить последнюю скопированную (или удаленную!) строку ниже текущейP — вставить последнюю скопированную (или удаленную!) строку выше текущей
Дополнительные команды редактирования
u — отменить последнее действие<ctrl>-r — вернуть последнее отмененное действиеJ — присоединить строку ниже к текущей
Установите утилиту 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, вы должны находиться в обычном режиме, который используется по умолчанию при запуске редактора. Чтобы вернуться в обычный режим из любого другого режима, просто нажмите клавишу «Esc».
Общая форма команды замены следующая:
Команда ищет в каждой строке в и заменяет его . — положительное целое число, умножающее команду.
Если не и , заменяется только шаблон, найденный в текущей строке. Текущая строка — это строка, в которой находится курсор.
Например, чтобы найти первое вхождение строки ‘foo’ в текущей строке и заменить его на ‘bar’, вы должны использовать:
Чтобы заменить все вхождения шаблона поиска в текущей строке, добавьте флаг
Если вы хотите найти и заменить шаблон во всем файле, используйте процентный символ в качестве диапазона. Этот символ указывает диапазон от первой до последней строки файла:
Если часть опущена, она рассматривается как пустая строка, и соответствующий шаблон удаляется. Следующая команда удаляет все экземпляры строки ‘foo’ в текущей строке:
Вместо символа косой черты ( ) можно использовать любой другой однобайтный символ, кроме буквенно-цифрового, кроме разделителя. Этот параметр полезен, если в шаблоне поиска или в строке замены есть символ «/».
Для подтверждения каждой замены используйте флаг
Нажмите чтобы заменить совпадение, или чтобы заменить совпадение и выйти. Нажмите чтобы пропустить совпадение, и или чтобы выйти из замены. Параметр заменяет совпадение и все оставшиеся вхождения совпадения. Для прокрутки экрана вниз используйте , а для прокрутки вверх используйте
Вы также можете использовать регулярные выражения в качестве шаблона поиска. Приведенная ниже команда заменяет все строки, начинающиеся с ‘foo’ на ‘Vim is the best’:
Символ (каретка) соответствует началу строки, а Соответствует любому количеству любых символов.