00m.Ru
2Фев/140

Справочник по Vim

ОБЩИЕ КОМАНДЫ:

:help — получение справки
:help xxx — справка по конкретной команде или понятию
Ctrl+g — информация о файле и положении курсора
ga — информация о символе под курсором
Ctrl+n — автодополнение ранее введённых слов
:!<команда> — выполнение внешних команд (например,
:! firefox % — просмотр редактируемой страницы в firefox)

УПРАВЛЕНИЕ КУРСОРОМ И ПРОКРУТКОЙ:

h — курсор влево
j — курсор вниз
k — курсор вверх
l — курсор вправо
[№ строки] Shift+g — переход к заданной строке (без номера — переход в конец файла)
gg — переход в начало файла
Ctrl+e — сдвиг окна на одну строку вверх (курсор остается на месте)
Ctrl+y — сдвиг окна на одну строку вниз (курсор остается на месте)
Ctrl+f — вниз на одну страницу
Ctrl+b — вверх на одну страницу
{ или } — начало текущего или следующего параграфа

ОТКРЫТИЕ, ЗАКРЫТИЕ И СОХРАНЕНИЕ ФАЙЛА И ЕГО ЧАСТЕЙ:

:w file — сохранение файла с именем file
:sav file — сохранить как
:e file — открытие файла
:e / — открывает «файл менеджер»
:q — выйти из файла
:q! — выйти без сохранения изменений
:wq — сохранить изменения и выйти
:#,# w file — сохранение части файла между двумя строками в file
:r file — вставка файла в позиции курсора
:next f1.txt f2.txt — открыть несколько файлов одновременно
:next — перейти к следующему открытому файлу
:prev — перейти к предыдущему открытому файлу

«ФАЙЛОВЫЙ МЕНЕДЖЕР»:

:e {каталог} — открывает дерево каталогов в текущем окне
:E — открывает дерево каталогов в новом окне с горизонтальным разделением
:Ve — открывает дерево каталогов в новом окне с вертикальным разделением

УДАЛЕНИЕ И ЗАМЕНА СИМВОЛОВ:

x — удалить символ под курсором
X — удалить символ перед курсором
r — замена символа под курсором
R — замена более чем одного символа
~ — смена регистра выделенного блока либо символа под курсором
u — устновить нижний регистр для выделенного фрагмента
U — устновить верхний регистр для выделенного фрагмента

СДВИГ И СЛИЯНИЕ СТРОК:

> — сдвинуть выделенный фрагмент вправо
< — сдвинуть выделенный фрагмент влево >> — сдвинуть строку вправо
<< — сдвинуть строку влево
J — слияние текущей строки со следующей

КОМАНДЫ ВСТАВКИ:

i — вставить текст перед символом под курсором
I — вставить текст в начале строки
а — вставить текст после символа под курсором
A — вставить текст в конец строки
o — пустая строка ниже курсора и переход в режим вставки
O — пустая строка выше курсора и переход в режим вставки
Ctrl+q — вставляет символ, код которого следует за нажатием комбинации.

КОМАНДЫ УДАЛЕНИЯ:

[n] d объект ИЛИ d [n] объект
[n]dd — удалить n строк
n — число повторений команды (по умолчанию n=1)
D — удалить до конца строки

КОМАНДА ЗАМЕНЫ:

[n] объект c ИЛИ c [n] объект
[n]cc — изменить n строк
n — число повторений команды (по умолчанию n=1)

КРАТКИЙ СПИСОК ОБЪЕКТОВ (МОГУТ БЫТЬ ИСПОЛЬЗОВАНЫ ДЛЯ ПЕРЕМЕЩЕНИЯ КУРСОРА):

w — от курсора до конца слова, включая завершающий пробел
e — от курсора до конца слова, не включая завершающий пробел
b — от курсора до начала слова
$ — от курсора до конца строки
^ — от курсора до начала строки

КОМАНДЫ ОТМЕНЫ И ПОВТОРА:

u — отмена изменения
V — отмена изменений во всей строке
Ctrl+R — отмена отмены
. — повторить команду

КОПИРОВАНИЕ И ВСТАВКА ТЕКСТА:

v — визуальный режим, выделение текста посимвольно
V — визуальный режим, выделение текста построчно
Ctrl+V — визуальный режим, выделение прямоугольного блока
ggVG — выделить всё
gv — вернуться к ранее выделенной области
y — скопировать выделение
[n]yy — скопировать n строк (по умолчанию n=1)
p — вставка последнего удалённого или скопированного текста под курсором
P — вставка последнего удалённого или скопированного текста над курсором
[p - вставка скопированного текста перед курсором
]p — вставка скопированного текста после курсора

РАБОТА С ИМЕНОВАННЫМИ РЕГИСТРАМИ:

:reg — показать содержимое всех регистров
{Visual}["x]y — скопировать выделенный текст в регистр x
{Visual}["x]Y — скопировать выделенные строки в регистр x
["x]p — поместить текст из регистра x после курсора
["x]P — поместить текст из регистра x перед курсором
x — [a-z] (перезапись содержимого регистра) или [A-Z] (добавление к содержимому регистра)

ПОИСК В ТЕКСТЕ:

/[шаблон] — поиск соответствия шаблону
n — повторить поиск
* — поиск слова под курсором
# — поиск слова под курсором в обратном направлении
Shift+n — повторить поиск в обратном направлении
?[шаблон] — поиск в обратном направлении
% — поиск парных элементов (например, скобки или if-endif)
[{ или ]} — перемещение между парными {}
gd — переход от места использования переменной к её локальному объявлению

ОПЕРАЦИЯ ЗАМЕНЫ:

:s/xxx/yyy — замена первого вхождения «ххх» на «ууу» в строке
:s/xxx/yyy/g — замена всех вхождений «ххх» на «ууу» в строке
:#,#s/xxx/yyy/g — замена всех «ххх» на «ууу» между двумя строками (# — номера строк)
:%s/old/new/g — замена всех «ххх» на «ууу» во всем файле
:s/xxx/yyy/c/i — /c-спрашивать подтверждение замены, /i-игнорировать регистр

АББРЕВИАТУРЫ:

ab xxx yyy — заменять все xxx на yyy
iab xxx yyy — то же, но только для режима insert
cab xxx yyy — то же, но только для командной строки
ab — показать все аббревиатуры
abc — удалить все аббревиатуры

МЕТКИ:

m{name} — установка метки с именем name (одна буква либо цифра)
‘{name} — переход на установленную метку
`{name} — переход на конкретную позицию курсора, помеченную меткой
:marks — показать все установленные метки
:delm! — удалить все метки в текущем буфере, но не A-Z или 0-9
:delm a — удалить метку a
:delm a b 1 — удалить метки a, b и 1
:delm p-z — удалить метки в диапазоне от p до z

КОДИРОВКА И ФОРМАТ КОНЦА СТРОКИ:

:set ++enc={кодировка} — открывает файл в указанной кодировке (cp1251, koi8-r, ibm866, utf-8)
:set ++fenc={кодировка} — конвертирует файл в указанную кодировку
:set fileformat={формат} — устанавливает формат конца строки dos,unix или mac (,,)

РАБОТА С ОКНАМИ:

:sp или Ctrl+w s — разделить окно на два по горизонтали
:vs или Ctrl+w v — разделить окно на два по вертикали
:new или Ctrl+w n — создаёт новое окно с пустым файлом (горизонтальное разделение)
:vne — создаёт новое окно с пустым файлом (вертикальное разделение)
Ctrl+w Ctrl+w — переход между окнами
Ctrl+w = — устанавливает равную высоту (ширину) окон

РАБОТА С ВКЛАДКАМИ:

:tabnew — создать новую вкладку
:tabc — закрыть текущую вкладку
:tabo — закрыть все остальные вкладки
:gt — перейти на следующую вкладку
:gT — перейти на предыдущую вкладку

СВОРАЧИВАНИЕ БЛОКОВ (ФОЛДИНГ):

:set fdm — показать текущий метод фолдинга
:set fdm={метод} — установить метод фолдинга (manual, indent, expr, marker, syntax, diff)
:zf — сворачивает выделенный блок текста (только для метода manual)
:zo — разворачивает блок
:zc — сворачивает блок
:zR — разворачивает все блоки
:zM — сворачивает все блоки
:zd — удаляет сворачиваемый блок
:zD — удаляет все сворачиваемые блоки
:zi — включить/выключить сворачивание блоков

РУССКАЯ РАСКЛАДКА И КОМАНДНАЯ СТРОКА:

:set keymap=russian-jcukenwin
:set iminsert=0
Теперь раскладку можно менять в режиме вставки клавишами Ctrl+^, оставляя
общую раскладку в латинице для удобства использования командной строки

ПРОВЕРКА ОРФОГРАФИИ:

Качаем с ftp://ftp.vim.org/pub/vim/runtime/spell/ файлы *.sug и *.spl
для соответствующей локали и помещаем их в ~/.vim/spell
(/usr/share/vim/vimcurrent/spell для Debian)
:setlocal spell spelllang=en,ru — включить проверку орфографии для русского и английского языков
:setlocal spell spelllang= — отключить проверку орфографии
]s — перейти к следующей ошибке
[s — к предыдущей ошибке
z= — выдать список возможных замен
zG — добавить слово в словарь
zW — пометить слово как ошибочное

УСТАНОВКА ПАРАМЕТРОВ, ПРИМЕРЫ:

:set ai — автоматически устанавливать отступ как у предыдущей строки
:set ic — игнорировать регистр при поиске
:set hls — подсвечивать все вхождения при поиске
:set sy enable — включить подсветку синтаксиса
:set wrap — переносить длинные строки
:set number — включить отображение номеров строк
:set nonumber — отключить отображение номеров строк
:colorscheme — установить цветовую схему
:set incsearch — показывать вхождения по мере набора при поиске

НАЗНАЧЕНИЕ КОМБИНАЦИЙ КЛАВИШ:

:map xxx yyy — назначает выполнение команды yyy при нажатии комбинации xxx
:unmap xxx — отменяет назначение для xxx
:mapc — отменяет все назначения
Например :map tn :tabnew — назначает открытие новой вкладки при нажатии tn

ФАЙЛ КОНФИГУРАЦИИ VIM:

Unix: ~/.vimrc
Windows: $VIM/_vimrc
Файл примера: $VIMRUNTIME/vimrc_example.vim

1Фев/140

Чистка файлов при помощи find

Попробовал почистить файлы в папках при помощи find и xargs, получил ошибку

 find . -name access.log |xargs cat /dev/null >
zsh: parse error near `\n'

Решение:

find . -name access.log -exec dd if=/dev/null of={} \;
0+0 records in
0+0 records out
0 bytes transferred in 0.000024 secs (0 bytes/sec)
0+0 records in
0+0 records out
0 bytes transferred in 0.000037 secs (0 bytes/sec)
0+0 records in
0+0 records out
0 bytes transferred in 0.000018 secs (0 bytes/sec)