//Стырил откуда то из 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
Можно например вставить результат запроса к базе данных или ldap.
2) можно текст пропустить через внешнюю команду:
для этого «:1,$!команда»
Например:
:1,$!sort — отсортировать текст
:1,$! grep -v «^#» — удалить строки начинающиеся с символа «#»
Можно пропустить через внешнюю команду только выделенный фрагмент — для этого в «визуальном режиме» выделяем текст и нажимаем «!» дальше дописываем команду которую нужно выполнить.
3) можно просто выполнить внешнюю команду:
для этого «:!команда»
например я обычно в конфиг vi (это файл /etc/vimrc или в домашней папке .vimrc) добавляю в конец такую запись:
map
что означает следующее: при нажатии на клавишу F2 — файл сохраняется(«:w
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 — подсказка по «назначению клавиш»