- Редактор Vi/Vim
- Содержание
- Открываем файл
- Внутри Vi
- Перемещаемся по документу
- Перемещения в Vi, часть 1
- Перемещения в Vi, часть 2
- Перемещение по словам, часть 1
- Перемещение по словам, часть 2
- Перемещение по словам, часть 3
- Дальние переходы
- Выход
- Сохранение и редактирование
- Save(сохранить) и Save as. (сохранить как. )
- Простое редактирование
- Повторение и удаление
- Режим ввода текста
- Комбинированные команды
- Увеличение производительности
- Экранный режим
- Замена текста
- Выделение
- Ссылки
- Полезное
- Обои с описанием клавиатурных сокращений и команд.
- Статьи про Vi
- Vim (Русский)
- Contents
- Установка
- Использование
- Настройка
- Буфер обмена
- Подсветка синтаксиса
- Отступы
- Визуальный перенос
- Использование мыши
- Переход на новую строку с помощью клавиш со стрелками
- Объединение файлов
- Советы и рекомендации
- Нумерация строк
- Проверка орфографии
- Сохранение позиции курсора
- Запуск Vim по команде vi
- Возврат каретки DOS/Windows
- Пустое пространство в нижней части окон gVim
- Плагины
- Установка
- Используя встроенную систему управления пакетами
- Используя менеджер плагинов
- Из репозиториев Arch
- cscope
- Taglist
Редактор Vi/Vim
Содержание
Существует множество версий Vi. Я представлю вам версию Vi, называемую «Vim». Vim очень популярен, так как у него есть несколько дополнений, делающих Vi немного приятнее (когда будут демонстрироваться специфичные для Vim команды, я это отмечу). Здесь приведена картинка GVim из моей системы.
Для того, чтобы установить Vim перейдите по ссылке слева или выполните в терминале:
Хотя в большинстве дистрибутивов Linux он уже установлен по умолчанию. В придачу к улучшенному консольному Vi, Vim доступен также в виде GVim — прекрасного графического редактора, который может быть сконфигурирован для использования с великолепной библиотекой GUI (графического интерфейса пользователя) GTK+.
Если Vi вам в новинку, попробуйте установить в своей системе GVim. Использование Vi в графической оболочке может кое в чем облегчить новичкам жизнь.
Также можно запустить обучающую программу, набрав в терминале команду
Это небольшая обучающая программа поможет за 25-30 минут освоиться в этом необычном для новичка редакторе.
Открываем файл
Перед использование Vi для редактирования файлов вам следует узнать, как в Vi перемещаться по файлу. У Vi множество команд перемещения, многие из них мы сейчас рассмотрим. Для этой части обучения найдите какой-нибудь малоценный текстовый файл (TODO: лучше на английском) и загрузите его в Vi напечатав:
Если у вас установлен Vim, наберите в консоли:
Если вы предпочитаете использовать GVim:
myfile.txt должно быть именем текстового файла в вашей системе.
Внутри Vi
После загрузки Vi, на экране вы должны увидеть часть загруженного вами текстового файла. Поздравляю — вы уже в Vi! В отличии от большинства редакторов, загрузившись, Vi находится в специальном режиме, называемом «командным режимом». Это значит, что если вы нажмете клавишу (строчная L), вместо появления «l» на месте курсора вы увидите, что курсор всего лишь сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vi, а не как помещаемые в текст символы. Один из наиболее важных типов команд — это команды перемещения. Давайте рассмотрим некоторые из них.
Перемещаемся по документу
Перемещения в Vi, часть 1
Находясь в командном режиме, вы можете использовать клавиши , , и для перемещения курсора влево, вниз, вверх и вправо соответственно. Если вы используете современную версию Vi, вы можете также с этой целью использовать клавиши со стрелками. Клавиши , , и предпочтительнее, так как освоившись с ними вы сможете перемещаться по файлу, не размахивая руками над клавиатурой. Для перемещения по текстовому файлу используйте следующие клавиши:
Попробуйте использовать пока не дойдете до начала строки. Отметьте, что Vi не даст вам перескочить на предыдущую строку, нажимая , если вы находитесь в начале строки. Точно также он не позволит вам перескочить на следующую строку, нажимая в конце строки.
Перемещения в Vi, часть 2
Vi предоставляет специальные команды для прыжков в начало и конец текущей строки:
Поскольку у Vi так много команд перемещения, его можно использовать в качестве великолепного инструмента просмотра — «pager»а (как команды more или less). Используя Vi для просмотра, вы очень быстро запомните все команды перемещения.
Вы также можете использовать и для перемещения вперед и назад сразу на страницу. Современные версии Vi (такие как Vim) могут позволить использовать для этих целей клавиши
Перемещение по словам, часть 1
Vi также позволяет вам перемещаться влево и вправо по словам:
Перемещение по словам, часть 2
Позабавившись с командами перемещения по словам, вы могли заметить, что Vi считает слова типа «foo-bar-oni» пятью различными словами! Это происходит потому, что Vi по умолчанию разделяет слова пробелами или знаками пунктуации (которые тоже считает словами). Поэтому foo-bar-oni считается пятью словами: «foo»,«-»,«bar»,«-» и «oni».
Иногда вам так и надо, а иногда — нет. К счастью, Vi воспринимает понятие «большого слова». vi разделяет большие слова только пробелами и началами строк. Это значит, что foo-bar-oni состоит из пяти Vi-слов, но является только одним большим словом Vi.
Перемещение по словам, часть 3
Чтобы переместиться на следующее или предыдущее большое слово, вы можете использовать «заглавные» команды перемещения по словам. Нажав следующие клавиши, вы попадете на:
Дальние переходы
Осталось рассмотреть еще несколько команд, и можно будет начинать их записывать на шпаргалку. Вы можете использовать скобки:
Выход
Мы рассмотрели основные команды перемещения, однако осталась еще пара команд, которые вам необходимо знать. Напечатав:
Теперь вы должны оказаться в командной строке системы.
Любая команда в Vi, начинающаяся с двоеточия («:»), называется командой ex-режима (an ex-mode command). Это из-за того, что Vi имеет встроенный не экранный редактор, зовущийся ex. Он может использоваться подобно sed для выполнения операций редактирования, ориентированных на строки. Дополнительно, как мы только что видели, он может использоваться для завершения работы. Если вы случайно нажмете , находясь в командном режиме, то можете оказаться в ex-режиме. В этом случае вы столкнетесь с приглашением «:», и нажатие на Enter будет сдвигать вверх содержимое экрана. Для возврата к привычному vi-режиму просто наберите vi и нажмите .
Сохранение и редактирование
Save(сохранить) и Save as. (сохранить как. )
Мы уже видели, как используя ex-команду :q выйти из vi.
В Vim (и других потомках Vi, типа elvis), вы можете держать открытыми одновременно несколько буферов. Введите команду
Для перехода между окнами нажмите , (дважды + ). Любая из команд :q, :q!, :w и 😡 относиться только к активному окну.
Простое редактирование
Вот и подошло время заняться изучением простых команд редактирования. Рассматриваемые здесь команды считаются «простыми» из-за того, что оставляют вас в командном режиме. Более сложные команды автоматически переводят вас в режим ввода текста, позволяющий добавлять в буфер символьную информацию, набираемую на клавиатуре; их рассмотрим позднее.
Повторение и удаление
Повторить любую команду редактирования вы можете нажимая клавишу (точка). Если попробуете, то можете увидеть, что печать dd… удалит 4 строки, а J…… объединит семь строк. Как обычно, Vi обеспечивает вас различными удобными средствами сокращения трудозатрат.
Удалять текст вы можете также комбинируя команду d с любыми командами перемещения. Например, dw удалит часть текста от текущей позиции курсора до начала следующего слова; d) удалит вплоть до следующего конца предложения, и d> удалит весь остаток абзаца. Поэкспериментируйте с командой d и другими командами редактирования, пока не почувствуете себя с ними уверенно.
Режим ввода текста
Мы уже рассмотрели, как в vi перемещаться, выполнять чтение\запись файлов и основные операции редактирования. Однако, я еще не объяснил, как напечатать произвольный текст! Сделано это было умышленно, так как поначалу режим ввода текста в Vi малость сложноват. Тем не менее, после того, как вы станете спокойно себя чувствовать в режиме ввода текста, эта сложность (и гибкость) станет настоящей ценностью.
В Vi, в режиме ввода текста, вы можете вводить текст «прямо на экран», как в большинстве других экранных редакторов. Сделав свои изменения, вы можете нажать
Комбинированные команды
Разрешая комбинации (число)(команда перемещения), Vi позволяет еще совмещать команды d или c с числами или командами перемещения. Так d3w удалит следующие три слова, d2j удалит текущую и две следующие строки, и т.д. Попробуйте немного поэкспериментировать с командами c и d, совмещенными с перемещениями, чтобы почувствовать, каким мощным и лаконичным может быть редактирование в Vi. Когда эти команды станут вашей второй натурой, вы сможете редактировать файлы с невероятной скоростью.
Увеличение производительности
Только что мы рассмотрели, как перемещаться, сохранять и завершать работу, выполнять простое редактирование и удаление, пользоваться режимом ввода текста. С этим багажом знаний (только что показанным на шпаргалке) вы уже способны, используя Vi, справиться практически с любой задачей.
Однако, у Vi есть еще много более мощных команд. В этом разделе вы узнаете как вы’резать (cut), скопировать (copy) и вставить (paste), найти (search) и заменить (replace) текст, а так же, как использовать автоматический отступ (autoindent). Эти команды помогут Vi быть более приятным и производительным.
Экранный режим
Лучшим способом вырезать и вставлять фрагменты текста является использование экранного режима, специального режима, добавленного в современных версиях Vi, таких как Vim и elvis. Вы можете представлять себе экранный режим как режим «подсвечивания текста». Выделенный текст может быть скопирован или удален, а затем вставлен. Если вы используете GVim, выделить кусок текста вы можете просто нажав левую кнопку мышки и протащив курсор по нужной области. Войти в экранный режим вы еще можете нажав v (это может быть вашей единственной возможностью, если вы используете Vi в консоли). Затем, двигая курсор командами перемещения (обычно стрелками), вы можете выделить область текста. Закончив выделение, вы уже готовы вырезать либо копировать текст.
Для копирования текста нажмите y (от слова «yank»). Чтобы вырезать текст нажмите d. Вы будете переведены назад в командный режим. Теперь переместитесь в то место, где вы хотите вставить вырезанный или скопированный текст, и нажмите P (заглавная) для вставки перед курсором или p (строчная) для вставки за курсором. Всё, копирование\вырезание и вставка выполнены! А теперь проделайте еще несколько раз процедуру копирования\вырезания и вставки перед тем, как перейти к следующему разделу.
Для того, чтобы вставить в редактор содержимое буфера обмена (в который Вы скопировали информацию по + ) необходимо установить утилиту xclip
и скопировав нужный текст выполнить в командном режиме редактора
:r! xclip -o и нажмите .
Замена текста
Для замены образцов текста мы используем ex-режим. Если вы хотите заменить первый попавшийся в текущей строке образчик, наберите:
:s/ / / и нажмите , где — что хотите заменить, и — на что.
Для замены всех совпадений с эталоном в текущей строке используйте команду:
И не забудьте, набрав команду, нажать .
Выделение
Vi поддерживает автоматический отступ при редактировании вами исходников (текстов программ). Большинство современных версий Vi (таких, как Vim) могут самостоятельно включать абзацный авто отступ при редактировании вами исходников (например, файлов типа .c).
Если авто отступ включен, вы можете использовать для уменьшения и для увеличения уровня отступа.
Ссылки
Означенные здесь ресурсы могут быть полезны желающим продолжить изучение vi далее. (Правда, на английском):
Полезное
Обои с описанием клавиатурных сокращений и команд.
Размер: 1366х768
Для загрузки нажмите на изображение, в появившемся окне нажмите на изображение ещё раз для увеличения и нажмите правой кнопкой «Сохранить изображение как…» Исходник в формате .xcf
Взято с хабра
Статьи про Vi
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Источник
Vim (Русский)
Vim — консольный текстовый редактор, являющийся расширенной версией vi с дополнительными функциями, которые включают в себя: подсветку синтаксиса, полноценную систему помощи, встроенную поддержку скриптов (vimscript), визуальный режим для простоты выделения и сравнение файлов (vimdiff).
Contents
Установка
Установите один из следующих пакетов:
- vim — с поддержкой Python 2/3, Lua, Ruby и Perl, но без поддержки GTK/X.
- gvim — идентичен vim , но c поддержкой GTK/X.
Использование
Также вы можете запустить vimtutor (для версии с интерфейсом командной строки) или gvimtutor (для версии с графическим интерфейсом) для отображения руководства по использованию Vim.
Vim включает в себя широкую справочную систему, доступ к которой можно получить посредством :h субъект . Субъекты включают в себя команды, опции, горячие клавиши, плагины и так далее. Используйте команду :h (без какого-либо субъекта), чтобы полчуить информацию о вспомогательной системе и о том, как перемещаться между субъектами.
Настройка
Файл конфигурации Vim для конкретного пользователя расположен в домашней директории —
/.vimrc , файлы текущего пользователя в
/.vim/ . Общий файл конфигурации —
/.vimrc , а общие файлы находятся в /usr/share/vim/ .
/.vimrc . Добавьте let skip_defaults_vim=1 в /etc/vimrc для полного отключения загрузки defaults.vim . [1]
Буфер обмена
Такие команды Vim как :yank или :paste работают с безымянным регистром, который по умолчанию соответствует регистру «* . Если доступна +clipboard , то регистр «* отображается в PRIMARY буфер в X.
Чтобы изменить стандартный регистр на «+ , используйте :set clipboard=unnamedplus . Регистр «+ соответствует CLIPBOARD буферу в X.
Для более подробной информации смотрите :help ‘clipboard’ .
Подсветка синтаксиса
Чтобы включить подсветку синтаксиса для многих языков программирования:
Отступы
Отступы для определенного типа файла:
Визуальный перенос
Опция wrap (включена по умолчанию) указывает Vim переносить длинные строки, которые не помещаются на экран, так, что оставшаяся часть строки отображается на следующей линии. Опция wrap влияет только на отображение текста, сам текст при этом не изменяется.
Изначально перенос строки происходит ровно в том месте, где размещается последний ее символ, поместившийся на экране, даже если он находится в середине слова. Для более умного переноса используйте опцию linebreak . Когда эта опция включена командой set linebreak , перенос строки происходит только после символов, которые перечислены в опции breakat , которая по умолчанию содержит в себе пробел и некоторые знаки препинания (смотрите :help breakat ).
Остаток строки обычно начинается с начала следующей линии, без всякого отступа. Опция breakindent сообщает Vim, что необходимо отображать перенесенный остаток строки с отступом, так, что на всех последующих линиях перенесенные части строки имеют тот же отступ, что и начало этой строки. Поведение breakindent может быть настроено при помощи опции breakindentopt . Например, для файлов исходного кода на языке Python может быть полезно добавлять дополнительный отступ в 4 пробела для перенесенных частей длинной строки (подробнее смотрите в :help breakindentopt ):
Использование мыши
Vim позволяет пользоваться мышью, но только в тех терминалах, которые это поддерживают:
Чтобы включить поддержку мыши, добавьте в
Опция mouse=a устанавливается в defaults.vim
Переход на новую строку с помощью клавиш со стрелками
По умолчанию, при нажатии ← в начале строки или → в конце, курсор не переводится на следующую/предыдущую строку.
Это можно исправить с помощью добавления строки set whichwrap=b,s, ,[,] в ваш файл
Объединение файлов
Vim включает в себя diff-редактор (программа, которая отображает различия между двумя файлами и позволяет удобно их объединять). Используйте vimdiff для этого — просто укажите ей пару файлов: vimdiff файл1 файл2 . Ниже приведен список команд vimdiff.
Действие | Горячая клавиша |
---|---|
следующие изменение | ]c |
предыдущее изменение | [c |
diff obtain | do |
diff put | dp |
развернуть блок | zo |
свернуть блок | zc |
перечитать файлы | :diffupdate |
переключить окна | Ctrl+w+w |
Советы и рекомендации
Нумерация строк
Чтобы включить отображение номера столбца, используйте :set number . По умолчанию показываются абсолютные значения номеров строк, относительные включаются посредством :set relativenumber .
Переход к новой строке осуществляется посредством :line number или line numbergg . Все переходы запоминаются в лист переходов, для более подробной информации смотрите :h jump-motions .
Проверка орфографии
Проверку орфографии в Vim можно включить с помощью:
По умолчанию установлен только английский словарь. Другие словари можно найти в официальных репозиториях по запросу vim-spell . Еще больше словарей можно найти в FTP-архиве Vim. Словари необходимо поместить в каталог для словарей —
/.vim/spell/ . Включить словарь можно командой :setlocal spell spelllang=ru_yo (заменив ru_yo на имя нужного словаря).
Действие | Команда |
---|---|
следующая ошибка | ]s |
предыдущая ошибка | [s |
предложения для исправления | z= |
добавить правильное написание | zg |
добавить правильное написание (на сеанс) | zG |
добавить неправильное написание | zw |
добавить неправильное написание (на сеанс) | zW |
повторить проверку орфографии во всем файле | :spellr |
/.vimrc или /etc/vimrc и перезапустите Vim.
Вы можете включить проверку орфографии для конкретных типов файлов (например .txt), используя плагин FileType и собственное правило для определения типа файла. Чтобы включить проверку орфографии для всех файлов, оканчивающихся на .txt, создайте файл /usr/share/vim/vimfiles/ftdetect/plaintext.vim и вставьте туда строку: autocmd BufRead,BufNewFile *.txt setfiletype plaintext . Далее, вставьте строку autocmd FileType plaintext setlocal spell spelllang=ru в файл
/.vimrc или /etc/vimrc и перезапустите Vim. Или поместите строку autocmd BufRead,BufNewFile *.txt setlocal spell в
/.vimrc или /etc/vimrc и перезапустите Vim. Не забудьте отредактировать строчку (specifically *.txt ), чтобы включить соответствующие типы файлов для проверки орфографии.
Чтобы включить проверку орфографии только для документов LaTeX (или TeX), добавьте autocmd FileType tex setlocal spell spelllang=ru в файл
/.vimrc или /etc/vimrc и перезапустите Vim.
Сохранение позиции курсора
Если вы хотите, чтобы курсор возвращался в прежнее положение после открытия файла, добавьте следующее в
Запуск Vim по команде vi
Создайте псевдоним для vi на vim .
Если вы хотите, чтобы при вводе sudo vi запускался vim , то установите пакет vi-vim-symlink AUR , который удалит vi и заменить его символической ссылкой на vim .
Возврат каретки DOS/Windows
Если вы видите последовательность ^M в конце каждой линии, это означает, что вы редактируете текстовый файл, который был создан в MS-DOS или Windows. Дело в том, что в Linux для переноса принято использовать один символ новой строки (LR), тогда как в системах Windows/MS DOS для той же цели используется последовательность из двух символов: возврата каретки (CR) и новой строки (LR). Как раз эти символы возврата каретки и отображаются в виде ^M .
Для удаления всех символов возврата каретки из файла, выполните:
Обратите внимание, что ^ здесь — управляющий символ, а не обычный. Чтобы ввести управляющую последовательность ^M , нажмите Ctrl+v,Ctrl+m .
Также вы можете просто установить пакет dos2unix и исправлять файлы командой dos2unix файл .
Пустое пространство в нижней части окон gVim
Когда используется оконный менеджер, настроенный на игнорирование размеров окна, gVim заполняет неиспользованные области окна стандартным фоновым цветом темы GTK.
Решение заключается в регулировании количества места, которое будет резервировать в нижней части окна gVim. Поместите следующую строку в
Плагины
Плагины могут помочь повысить эффективность вашей работы в Vim. Они могут менять интерфейс Vim, добавлять новые команды, поддержку завершения кода, интеграцию других программ и утилит с Vim, поддержку дополнительных языков и многое другое.
Установка
Используя встроенную систему управления пакетами
В Vim 8 добавлена возможность загрузки сторонних плагинов. Чтобы использовать эту функциональность, переместите плагины в
Используя менеджер плагинов
Менеджер плагинов позволяет устанавливать плагины и управлять ими одинаковым образом независимо от того, на какой системе вы запускаете Vim. Он представляет собой специальный плагин, который выполняет роль пакетного менеджера для других плагинов.
- Vundle — в настоящее время наиболее популярный менеджер плагинов Vim.
- Vim-plug — минималистичный менеджер плагинов для Vim, который имеет много особенностей, например, загрузка плагинов по запросу и параллельное обновление.
- pathogen.vim — простой плагин для управления переменной runtimepath.
- Dein.vim — менеджер плагинов, заменяющий NeoBundle, доступен как vim-dein-gitAUR .
Из репозиториев Arch
Группа vim-plugins объединяет множество разнообразных плагинов. Используйте команду pacman -Sg vim-plugins для отображения списка пакетов, которые вы можете затем установить, используя pacman.
cscope
Cscope является инструментом для навигации по программному проекту. Путем перехода к слову/символу/функции и вызову cscope (обычно с помощью горячих клавиш) можно найти: функции, которые вызывают данную, определение функции и многое другое.
Скопируйте стандартный файл cscope, который Vim будет автоматически читать:
/.vim/plugin/cscope_maps.vim , чтобы включить горячие клавиши cscope в Vim 7.x:
Создайте файл, который содержит список файлов для индексации (cscope может обрабатывать множество языков, но для примера мы возьмем файлы на Си/Си++ с расширениями .c, .cpp и .h):
Создание файлы базы данных, которые cscope будет читать:
Горячие клавиши по умолчанию:
Не стесняйтесь изменять горячие клавиши:
Taglist
Taglist отображает структуру файлов исходного кода и позволяет эффективно просматривать исходники на различных языках программирования.
Источник