Список сочетаний клавиш
Vim
Файл настройки: ~/.vimrc
Можно редактировать файлы через сеть, например
:e <scp|ftp|ftps>://user@host/path/to/the/file.txt
:Ex или :e ./ - файловый менеджер
:Tutor - режим обучения
:h - помощь
Основы
hjkl перемещение в разные стороны
i режим вставки
I добавление в начало строки
a режим добавления
A добавление в конец строки
o добавить строку сразу за текущей
O добавить строку перед текущей
R писать поверх имеющегося текста
u, :u[ndo] отмена предыдущего действия (undo)
CTR-R, :red[o] отмена отмены предыдущего действия (redo)
dd вырезать (удалить) строку
cc удалить и начать редактирование
yy копировать строку
p вставить из буфера обмена
d удалить n+1 строку
y скопировать n+1 строку
ESC перейти в режим просмотра
DEL удалить следующий символ
: перейти на строку #n
% перейти к парной скобке
:e **/filename.c редактировать файл (с поиском по имени)
:w [fname] записать изменения
:wa сохранить изменения во всех файлах
:q выйти из редактора
:q! выйти из редактора, не сохраняя изменения
:color выбор цветовой схемы. цветвые схемы:
/usr/local/share/vim/vim72/colors/.vim
:pwd текущий каталог
:cd [path] перейти в другой каталог
:!команда выполнить команду - man, git, и так далее
стрелочками веерх и вниз можно автодополнять
команды и искать по истории
CTR+p или CTR+n автоматическое дополнение текста
(в режиме редактирования)
CTR+r,=, вставить выражение, например 52 - 3
(в режиме редактирования)
CTR+u, CTR+d Page Up / Page Down
CTR+y, CTR+e Перемотка вверх/вниз без движения курсора
Подсветка синтаксиса
:syntax on включить подсветку
:syntax off выключить подсветку (по умолчанию)
Перенос строк
:set wrap разрешить word wrap (по умолчанию)
:set nowrap запретить word wrap
Печать
:ha[rdcopy] распечатать документ
:set printoptions=duplex:off отключить двусторонню печать
Сворачивание
zc свернуть блок
zo развернуть блок
zM закрыть все блоки
zR открыть все блоки
za инвертирование
zf см :set foldmethod=manual
:set foldenable включить свoрачивание
:set foldmethod=syntax сворачивание на основе синтаксиса
:set foldmethod=indent сворачивание на основе отступов
:set foldmethod=manual выделяем участок с помощью v и говорим zf
:set foldmethod=marker сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока
Маркеры
ma установить локальный маркер a
mB установить глобальный маркер B
c перейти к локальному маркеру c
0 вернуться на позицию, на которой закончили
работу при закрытии vim
:marks просмотр маркеров
set viminfo=’1000,f1 маркеры пишутся в ~/.viminfo, восстанавливаясь
при следующем запуске vim. маркер " хранит
последнюю позицию курсора в файле
## Сессии
mksession file.session сохранить текущую сессию
source file.session восстановить ранее сохраненную сессию
Макросы
qa записать макрос с именем a
q в режиме записи макроса: закончить запись
@a выполнить макрос с именем a
@@ повторить последний макрос
Регистры
“ayy скопировать строку в регистр a
”bdd вырезать строку и поместить в регистр b
"С2d вырезать три строки и дописать в конец
регистра C
:reg [name1][name2][…] просмотреть содержимое регистров
Выделение
v + hjkl выделение текста
SHIFT + v выделить строку
CTR + v выделение прямоугольника
p вставить
y копировать
d удалить
gu к нижнему регистру
gU к верхнему регистру
Отступы
[#]> сдвинуть выделенное вправо
[#]< сдвинуть выделенное влево
[#]>> сдвинуть строку вправо
[#]<< сдвинуть строку влево
set tabstop=# для табуляции используется # пробелов
set shiftwidth=# в командах отступа используется # пробелов
set [no]expandtab заменять ли табуляцию на соответствующее
число пробелов
Поиск и замена в файле
/Выражение поиск выражения в файле
поиск без учета регистра
n следующее совпадение
N предыдущее совпадение
:%s/foo/bar/gi замена строк, см http://eax.me/regular-expr/
Поиск по всему проекту
:vimgrep /EXPR/ **/*.c поиск по регулярному выражению
:copen показать все найденные места
:close скрыть все найденные места
:cn переход к следующему результату
:cp переход к предыдущему результату
Нумерация строк
:set number включить нумерацию строк
:set nonumber отключить нумерацию строк
Работа с вкладками (a.k.a табами)
:tabnew [fname] создать таб
:tabs вывести список табов
:tabn следующий таб
:tabp предыдущий таб
gt перейти на таб #n
gt следующий таб
gT предыдущий таб
:tabm +1 переместить таб вперед на одну позицию
:tabm -1 переместить таб назад на одну позицию
:tabm 2 переместить таб на заданную позицию
(нумерация начинается с нуля)
Работа с окнами
:split горизонтальное разбиение
:vsplit вертикальное разбиение
Ctr+W, затем
с закрыть окно
+- изменение высоты текущего окна
<> изменение ширины текущего окна
= установить равный размер окон
hjkl или стрелочки перемещение между окнами
Проверка орфографии
mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.sug
wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.spl
wget http://ftp.vim.org/vim/runtime/spell/en.ascii.sug
wget http://ftp.vim.org/vim/runtime/spell/en.ascii.spl
:set spell spelllang=ru,en включить проверку орфографии
:set nospell выключить проверку орфографии
]s следующее слово с ошибкой
[s предыдущее слово с ошибкой
z= замена слова на альтернативу из списка
zg good word
zw wrong word
zG ignore word
Работа с кодировкой
e ++enc= Редактирование файла в ??? кодировке
w ++enc= Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-r Список автоматически определяемых
кодировок в порядке убывания
приоритета
Другое
:set [no]wildmenu При авто-дополнении в командной строке над
ней выводятся возможные варианты
:set list Отображать табуляцию и переводы строк
q: История команд
. Повторение последней команды
## Ещё немного полезностей
vip - выделить параграф
viw - выделить слово
Shift+v или 0v$ - выделить строку
^v$ - выделить строку, начиная с первого непробельного символа
vi( - выделить всё между ближайшими круглыми скобками (аналогично ‘vi[’ и ‘vi{’ для квадратных и фигурных скобок)
va( - выделить всё между ближайшими круглыми скобками, включая сами скобки
v2j - выделить на две строки вниз
dip - вырезать параграф
di( - вырезать содержимое круглых скобок
da( - вырезать содержимое круглых скобок и сами скобки
y2y - скопировать две строки
yy - скопировать строку
yiw - скопировать слово
p - вставить после курсора
[p - вставить перед курсором
xp - поменять две буквы местами
vt, - выделить всё до ближайшей запятой
Weechat
Настройки
/server add dalnet irc.avtograd.ru/6667 - добавление сервера
/set irc.server.dalnet.nicks “ник1,ник2,ник3,ник4,ник5” - устанавливаем ники /set irc.server.dalnet.username “Имя_пользователя” /set irc.server.dalnet.realname “Реальное_имя” - Устанавливаем имя
/set irc.server.dalnet.autoconnect on - автоконнект к серверу
/set irc.server.dalnet.autojoin “#channel1,#channel2” - автовход на каналы
/set irc.server.dalnet.command “/msg nickserv identify xxxxxx” - автовыполнение команды после входа /save - сохранение настроек /set relay.network.allow_empty_password on -включение входа без пароля /set relay.network.ipv6 off - отключение ipv6
Кодировки
/charset CP1251 - установка кодировки на входящие и исходящие
/charset decode UTF-8
/charset encode CP1251 - установка кодировок на входящие и исходящие отдельно
/set charset.default.decode UTF-8 /set charset.default.encode UTF-8 - устанавливаем кодировки глобально, а не для сервера
Орфография
/aspell dictlist - посмотреть словари
/set aspell.check.default_dict “ru” - выбрать язык проверки глобально /aspell enable en - установить язык только для одного буфера
/set aspell.check.default_dict “ru, en” - установить несколько языков для проверки
Команды
/join #канал Войти на канал
/leave – покинуть текущий канал
/buffer 3 - перейти в буффер три
/buffer close – закрыть текущий буффер
/buffer clear – очистить буффер
/connect имя_сервера – подключиться к определенному серверу
/connect -all – подключиться ко всем серверам
/disconnect -all – отключиться от всех серверов
/disconnect имя_сервера – отключиться от определенного сервера
/quit – выход
/window spitv 33 - поделить на два окна
Клавиатурные сочетания
ctrl+a – В начало строки
ctrl+e – В конец строки
ctrl+k – Удалить от позиции курсора, до конца командной строки
ctrl+u – Удалить от позиции курсора, до начала командной строки
ctrl+w – Удалить предыдущее слово командной строки
alt+d – удалить следущее слово командной строки
alt+r – Удалить все содержимое командной строки
ctrl-r – Поиск
ctrl+y – Вставить из буфера
alt+b – К предыдущему слову командной строки
alf+f – К следующему слову командной строки
alt+n – Прокрутить к следующему подсвеченному сообщению
alt+p – Прокрутить в предыдущему подсвеченному сообщению
alt+u – Перейти к первому непрочитанному сообщению
ctrl+n(F6) – Следующий буфер
ctrl+p(F5) – Предыдущий буфер
F7\F8 - сменить окно
F12 – на одну страницу ников вниз
F11 – на одну страницу ников вверх
Alt+1-9 – на буфер с номером
Alt+a – Перейти к буферу с активностью(где написали ваш ник к примеру)
PageUp – пролистать буфер вверх
PageDown – пролистать буфер вниз
Screen
screen -ls - просмотр запущенных сеансов
screen -S darkfire - создание сеанса с названием
screen -rda name - подключение к запущенному сеансу по названию
screen –x - подключение к единственному сеансу
screen –r - подключение к последнему сеансу
screen –R - подключение к последнему сеансу, при отсутствии сеансов создаст новый
Сочетание клавиш
Ctrl+a, Ctrl+C или с Запустить еще один терминал.
Ctrl+a, d Отсоединить screen от экрана, вернувшись в физическую консоль. Сам screen при этом никуда не девается и висит в фоне, продолжая выполнять ваши задачи.
Ctrl+a, \ Закрыть screen, все виртуальные терминалы будут при это убиты (попросит подтверждения).
F11 - Переключение между виртуальными терминалами, предыдущее окно.
F12 - Переключение между виртуальными терминалами, следующее окно.
Ctrl+a, A Изменить название окна.
Ctrl+a, k Убить окно текущее окно терминала (попросит подтверждения).
[ctrl]+[a] [Shift S] разделяет экран на 2 горизонтальные полосы (верхняя и нижняя).
[ctrl]+[a] [TAB] переключаться между ними Очень полезно для ввода команд в одном “полуокошке”, и просмотра логов (tail -f) в другом
[ctrl]+[a] [x] Блокировка всего screen. Для разблокировки нужно ввести свой пароль.