Vim – редактор или злая шутка фанатиков командной строки

//Стырил откуда то из welinux.ru

 

прошу заметить, что в SUSE vi по умолчанию

настроен и  правда очень удобно, в бубунте же

дефолтная настройка далеко не так дружелюбна…

 

 

Из личной переписки (просто подумал – а что этому тексту в моей почте пылится – наверняка кому-то на пользу пойдет):

Наверное, самое сложное для человека с windows-складом ума – это научиться работать с редактором vi. Ну или просто понять, как можно было сделать такое и продолжать переносить из системы в систему. 🙂

Vim – это ВЕЩЬ(с большой буквы) 🙂
Даже знаком с человеком, который даже в Windows постоянно пользуется vi(программа gvim) для редактирования текстов.

Как говорил Станиславский: “Не верю”. Убеди

Про vi – объяснение зачем нужно им уметь пользоваться и чем он хорош:

1) Пользоваться vi (хотя бы на уровне блокнота) над обязательно всем пользователям Linux(за исключением наверно лишь фанатов emacs): потому что это редактор который есть везде и устанавливается по умолчанию.
Других редакторов может например не быть и возможности их поставить тоже – как например на модем каком-нить “D-Link”овском, или на железяке со встроенным Линукс (я встречал таких дивайсов с десяток – и везде был vi). Или на сервере без графики и минимальным набором софта (для безопасности).
Любителям пользоваться мышкой могу посоветовать графическую версию vi – gvim. – Хотя без мышки – зная vi, любой текст редактируется быстрее.

2) Для того чтобы им пользоваться на уровне блокнота, надо всего лишь знать следующие:
Открыть файл: vi /путь/к/файлу
Далее, у vi есть два основных режима: при включении попадаю в “командный”, а текст правится в режиме “редактирования”.
Переход из “ком.” в “ред.” – клавиша “Ins”, обратно – “Esc”.
В командном режиме: “u” – undo(отмена предыдущего действия), “:wq” – выход с сохранением, “:q!” – выход без сохранения.
Вот и все азы – зная их можно спокойно вносить изменения в конфигурационные файлы.

3) Можно удобно КопиПастить – для этого можно перейти в “визуальный” режим – нажав “v”. Дальше выделятся нужный текст курсорными клавишами и нажимается “y” – чтобы скопировать, “d” – чтобы вырезать, и затем в нужном месте “p” – чтобы вставить.
Этих знания обычно хватает, чтобы пользоваться vi без всяких изысков.

А немного изысков – для рекламы:
0) В продолжение КопиПастенья: можно скопировать текст из другого файла следующим образом:
выполнить “:vsplit /”, затем в появившемся окне найти нужный файл и открыть его. Далее с помощью “визуального режима” выделить нужный текст, закрыть окно – “:q”. И вставить скопированный текст – “p”.

1) можно результат внешних команд вставлять в текст – а не набирать много текста вручную.
Для этого: “:r! команда”, например:
:r! cal
и получил в файле календарик за текущий месяц.
:r! echo /e/X/xo – где – это нажатие клавиши Tab – в итоге я вставил в текст имя файла /etc/X11/xorg.conf – набрав при этом не так уж много символов и не имея шанса опечататься.
Можно например вставить результат запроса к базе данных или ldap.

2) можно текст пропустить через внешнюю команду:
для этого “:1,$!команда”
Например:
:1,$!sort – отсортировать текст
:1,$! grep -v “^#” – удалить строки начинающиеся с символа “#”
Можно пропустить через внешнюю команду только выделенный фрагмент – для этого в “визуальном режиме” выделяем текст и нажимаем “!” дальше дописываем команду которую нужно выполнить.

3) можно просто выполнить внешнюю команду:
для этого “:!команда”
например я обычно в конфиг vi (это файл /etc/vimrc или в домашней папке .vimrc) добавляю в конец такую запись:
map :w:!aspell -c %
что означает следующее: при нажатии на клавишу F2 – файл сохраняется(“:w” = “:w” – сохранить, “” – carrage return(Enter)), а затем запускается внешняя команда aspell(которая орфографию проверяет) с параметром “-с %” – % в vi заменяется на имя редактируемого файла.
map q :q
map w :w
и выходить из vi станет удобнее – просто клавишами w и q.
Программист Си’шный может например сделать чтобы редактируемый код скомпилировался и запустился полученный бинарник.
Веб-програмист – может например запустить утилиту tidy на редактируемый им html-текст, чтобы она праверила что все теги закрыты.
И тд и тп – команд в линуксе гораздо больше, чем я когда-либо узнаю и их все можно прицепить к vi, это касается и собственных скриптов – то есть “макрос на макросе и макросом погоняет”.

4) Подсветка синтаксиса конфигурационных файлов:
Для этого в конфиге /etc/vimrc – должна быть раскомментирована строка:
syntax on

5) Утилита vimdiff(смесь vi и diff-показывает различия в файлах):
пример использования:
vimdiff /etc/passwd /etc/passwd.old

И это только верхушка айсберга тех знаний которые я знаю о vi, которые в свою очередь являются верхушкой айсберга чего там еще можно сделать.

Все примеры были сделаны на дистрибутиве SUSE – но в основном верны и для других дистрибутивов использующих vim.

Не знаю убедил ли я Вас лично в удобстве использования именно этого редактора, но не так уж много лет назад я точно так же им пользовался впервые и точно так же плевалсяругался на якобы неудобства и сложность – сейчас же это основной редактор используемый в абсолютном большинстве задач.

Добавки на основании комментариев, да и навеяло:
1) vimtutor – туториал по vim
Также доступен на разных языках:
LANG=ru_RU.utf8 vimtutor – на русском
2) В vim есть help
:help исследуемое
например
:help map – подсказка по “назначению клавиш”

Добавить комментарий

Войти с помощью: