http://boombick.org/blog/posts/84
Небольшая подсказка по vim, будет полезна всем, я думаю. Это не руководство для начинающих (т.е. команд типа :wq здесь нет)
Комментарии приветствуются :)
Поиск
| /word | Искать слово “word” сверху вниз |
| ?word | Искать слово “word” снизу вверх |
| /jo[ha]n> | Искать “john” или “joan” |
| /\<> | Искать слова, начинающееся на “the” |
| /the\> | Искать слова, заканчивающиеся на “the” |
| /\<> | Искать “the” |
| /\< …. \> | Искать слова из четырех символов |
| /fred\|joe | Искать “fred” или “joe” |
| /\<\d\d\d\d\> | Искать 4 цифры подряд |
| /^\n\{3} | Искать 3 пустые строки |
| :bufdo /searchstr/ | Искать во всех открытых файлах |
Замена
| :%s/old/new/g | Заменить все вхождения “old” на “new” |
| :%s/old/new/gw | Заменить все вхождения “old” на “new” с запросом подтверждения |
| :2,35s/old/new/g | Заменить все вхождения “old” на “new” между 2 и 35 строками |
| :5,$s/old/new/g | Заменить все вхождения “old” на “new” начиная с 5 строки и до конца файла |
| :%s/^/hello/g | Добавить “hello” в начало каждой строки |
| :%s/$/Harry/g | Добавить “Harry” в конец каждой строки |
| :%s/onward/forward/gi | Заменить “onward” на “forward” с учетом регистра |
| :%s/ *$//g | Убрать все пробелы |
| :g/string/d | Удалить все строки, содержащие “string” |
| :v/string/d | Удалить все строки, не содержащие “string” |
| :s/Bill/Steve/ | Заменить первое вхождение “Bill” на “Steve” в текущей строке |
| :s/Bill/Steve/g | Заменить все вхождения “Bill” на “Steve” в текущей строке |
| :%s/\r//g | Убрать символ возврата каретки (Такие тексты обычно приходят от windows-пользователей) |
| :%s#>[^<]\+>##g | Очистить текст от HTML-тегов |
| :%s/^\(.*\)\n\1$/\1/ | Удалить строки, повторяющиеся дважды |
| Ctrl+a | Увеличить число под курсором на единицу |
| Ctrl+x | Уменьшить число под курсором на единицу |
| ggVGg? | Преобразовать текст в Rot13 |
Регистр
| Vu | Перевести строку в нижний регистр |
| VU | Перевести строку в верхний регистр |
| g~~ | Инвертировать регистр |
| vEU | Перевести слово под курсором в верхний регистр |
| vE~ | Инвертировать регистр слова |
| ggguG | Перевести весь текст в нижний регистр |
| :set ignorecase | Регистронезависимый поиск |
| :set smartcase | Игнорировать регистр при поиске, если в искомом выражении нет символов верхнего регистра |
| :%s/\<./\u&/g | Перевести первую букву каждого слова в верхний регистр |
| :%s/\<./\l&/g | Перевести первую букву каждого слова в нижний регистр |
| :%s/.*/\u& | Перевести первую букву первого слова в каждой строке в верхний регистр |
| :%s/.*/\l& | Перевести первую букву первого слова в каждой строке в нижний регистр |
Чтение/запись файлов
| :1,10 w outfile | Записать в outfile с первой по десятую строки |
| :1,10 w >> outfile | Добавить в outfile с первой по десятую строки |
| :r infile | Вставить содержимое файла infile |
| :23r infile | Вставить содержимое файла infile после 23 строки |
Навигация по ФС
| :e . | Открыть встроенный файл-менеджер |
| :Sex | Разбить окно и открыть встроенный файл менеджер |
| :browse e | Графический файл-менеджер |
| :ls | Список буферов |
| :cd .. | Перейти в родительскую директорию |
| :args | Список открытых файлов |
| :args *.php | Открыть все файлы с расширением *.php |
| :grep expression *.php | Показать список файлов с расширением php, содержащих в имени expression |
| gf | Открыть файл с именем, равным слову, находящемуся под курсором |
Взаимодействие с ОС
| :!pwd | Выполнить команду pwd и вернуться |
| !!pwd | Выполнить команду pwd и вставить результат в редактор |
| :sh | Открыть шелл |
| $exit | Вернуться в редактор из шелла |
Выравнивание
| :%!fmt | Выровнять все строки |
| !}fmt | Выровнять все строки в текущей позиции |
| 5!!fmt | Выровнять следующие 5 строк |
Вкладки
| :tabnew | Создать новую вкладку |
| gt | Перейти на следующую вкладку |
| :tabfirst | Перейти на первую вкладку |
| :tablast | Перейти на последнюю вкладку |
| :tabm n(position) | Изменить порядок вкладок |
| :tabdo %s/foo/bar/g | Выполнить команду во всех вкладках |
| :tab ball | Поместить все открытые файлы во вкладки |
Разделение окна
| :e filename | Редактировать filename в текущем окне |
| :split filename | Разделить окно и открыть filename |
| ctrl-w + стрелка ВВЕРХ | Переместить курсор в верхнее окно |
| ctrl-w ctrl-w | Переместить курсор в следующее окно |
| ctrl-w_ | Максимизировать текущее окно |
| ctrl-w= | Подогнать окна по размеру |
| 10 ctrl-w+ | Увеличить текущее окно на 10 строк |
| :vsplit file | Вертикально разделить окно |
| :sview file | Разделить окно и открыть file только для чтения |
| :hide | Закрыть текущее окно |
| :only | Закрыть все окна, кроме текущего |
| :b 2 | Открыть #2 в текущем окне |
Автодополнение
| Ctrl+n Ctrl+p (в режиме вставки) | Дополнить слово |
| Ctrl+x Ctrl+l | Дополнить строку |
| :set dictionary=dict | Установить словарь |
| Ctrl+x Ctrl+k | Дополнение из словаря |
Метки
| mk | Пометить текущую позиция как k |
| ‘k | Перейти к метке k |
| d’k | Удалить все до метки k |
Сокращения
| :ab mail mail@provider.org | Определить mail как сокращение от mail@provider.org |
Отступы
| :set autoindent | Включить автоматическую расстановку отступов |
| :set smartindent | Включить “умную” расстановку отступов |
| :set shiftwidth=4 | Установить отступ равный 4 пробелам |
| ctrl-t, ctrl-d | Убрать/добавить отступ в режиме вставки |
| << | Добавить отступ |
| >> | Убрать отступ |
Подсветка синтаксиса
| :syntax on | Включить подсветку |
| :syntax off | Выключить подсветку |
| :set syntax=perl | Установить режим подсветки |
Комментариев нет:
Отправить комментарий