Рубрики
vim \ vi \ text editor

vim настройки для пользователя / .vimrc

vim  ~/.vimrc
-------------
"color blue
"color evening
color morning
set mouse=v
syntax on
-------------
cat > ~/.vimrc << "EOF"
"color blue
"color evening
color morning
set mouse=v
syntax on
EOF

Включить проверку орфографии


Запускаем Vim, делаем:
!!! Нам предложат скачать словарь, скачиваем.
:setlocal spell spelllang=ru_ru,en_us  

Дополнительно о проверке орфографии:
:help spell

Рубрики
vim \ vi \ text editor

vim / копирование в системный буфер

В тех сборках, которые его поддерживают, указанный регистр (*) является системным буфером обмена. 

Чтобы скопировать текст из Vim в системный буфер обмена, вы можете выделить текст в визуальном режиме, а затем нажать, ("*y) чтобы скопировать его в системный буфер обмена.

И наоборот, используйте ("*p) для вставки текста из системного буфера обмена в Vim.

"*y - скопировать в  системный буфер
"*p - вставить из системного буфера

Рубрики
vim \ vi \ text editor

vim быстрое редактирование файла и групп файлов

cat text | vi -c "%s/один/два/g" -c "wq! text" - прочитали файл  text с помощью cat, произвели средствами vi замену слова один на слово два и, сохранив изменения в файле.
cat * | vi -c "%s/текст1/текст2/g" -c "wq result" - замена текста
Рубрики
vim \ vi \ text editor

vim работа с файлами в разных кодировках

:edit ++enc=koi8-r filename - В vi уже открыт файл, системная кодировка --- UTF-8, а нам нужно редактировать текст в KOI8-R.
vi -c "edit ++enc=koi8-r filename" - открыть файл в кодировке koi8-r
iconv -f KOI8-R -t UTF-8 filename | vi - перекодирование filename осуществляется на лету и не сохраняется до тех пор, пока данное указание не поступит от vi
Рубрики
vim \ vi \ text editor

vim другое

:set [no]wildmenu          При авто-дополнении в командной строке над ней выводятся возможные варианты
:set list                  Отображать табуляцию и переводы строк
q:                         История команд
.                          Повторение последней команды
Рубрики
vim \ vi \ text editor

vim работа с кодировкой

e ++enc=<имя кодировки>         Редактирование файла в ??? кодировке
w ++enc=<имя кодировки>         Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-r  Список автоматически определяемых кодировок в порядке убывания приоритета
Рубрики
vim \ vi \ text editor

vim проверка орфографии

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
setlocal spell spelllang=ru,en - включить проверку орфографии
set spell! вкл/выкл - проверку во время работы
]s - следующее слово с ошибкой
[s - предыдущее слово с ошибкой
zg good word
zw wrong word
zG ignore word
Рубрики
vim \ vi \ text editor

vim работа с окнами

:split - горизонтальное разбиение
:vsplit - вертикальное разбиение

Ctr+W, - затем
с - закрыть окно
= - установить равный размер окон
hjkl - стрелочки перемещение между окнами
Рубрики
vim \ vi \ text editor

vim работа с вкладками (a.k.a табами)

Работа с Tab'ами
нумерация начинается с нуля

:tabnew [fname]          создать таб
:tabs                    вывести список табов
:tabn                    следующий таб
:tabp                    предыдущий таб
gt                    перейти на таб #n
gt                       следующий таб
gT                       предыдущий таб
:tabm +1                 переместить таб вперед на одну позицию
:tabm -1                 переместить таб назад на одну позицию
:tabm 2                  переместить таб на заданную позицию
Рубрики
vim \ vi \ text editor

vim нумерация строк

:set number - включить нумерацию строк
:set nonumber - отключить нумерацию строк
Рубрики
vim \ vi \ text editor

vim поиск по всему проекту

:vimgrep /EXPR/ **/*.c   поиск по регулярному выражению
:copen                   показать все найденные места
:close                   скрыть все найденные места
:cn                      переход к следующему результату
:cp                      переход к предыдущему результату
Рубрики
vim \ vi \ text editor

vim поиск и замена в файле

/Выражение               поиск выражения в файле
\cВыражение              поиск без учета регистра
n                        следующее совпадение
N                        предыдущее совпадение
:%s/foo/bar/gi           замена строк, см http://eax.me/regular-expr/
Рубрики
vim \ vi \ text editor

vim отступы

[#]>                      сдвинуть выделенное вправо
[#]<                      сдвинуть выделенное влево
[#]>>                     сдвинуть строку вправо
[#]<<                     сдвинуть строку влево
set tabstop=#             для табуляции используется # пробелов
set shiftwidth=#          в командах отступа используется # пробелов 
set [no]expandtab         заменять ли табуляцию на соответствующее число пробелов
Рубрики
vim \ vi \ text editor

vim выделение

Выделение:

v + hjkl - выделение текста
SHIFT + v - выделить строку
CTR + v - выделение прямоугольника
p - вставить
y - копировать
d - удалить
gu - к нижнему регистру
gU - к верхнему регистру
Рубрики
vim \ vi \ text editor

vim регистры

"ayy - скопировать строку в регистр a
"bdd - вырезать строку и поместить в регистр b
"С2d - вырезать три строки и дописать в конец регистра C
:reg [name1][name2][...] - просмотреть содержимое регистров
Рубрики
vim \ vi \ text editor

vim макросы

qa                        записать макрос с именем a

q                         в режиме записи макроса: закончить запись

@a                        выполнить макрос с именем a

@@                        повторить последний макрос
Рубрики
vim \ vi \ text editor

vim сессии

mksession file.session    сохранить текущую сессию
source file.session       восстановить ранее сохраненную сессию
Рубрики
vim \ vi \ text editor

vim маркеры

ma                        установить локальный маркер a
mB                        установить глобальный маркер B
`c                        перейти к локальному маркеру c
`0                        вернуться на позицию, на которой закончили работу при закрытии vim

:marks                    просмотр маркеров

set viminfo='1000,f1      маркеры пишутся в ~/.viminfo, восстанавливаясь
                          при следующем запуске vim. маркер " хранит
                          последнюю позицию курсора в файле

Рубрики
vim \ vi \ text editor

vim сворачивание

zc - свернуть блок
zo - развернуть блок
zM - закрыть все блоки
zR - открыть все блоки
za - инвертирование
zf - см :set foldmethod=manual
:set foldenable - включить сворачивание
:set foldmethod=syntax - сворачивание на основе синтаксиса
:set foldmethod=indent - сворачивание на основе отступов
:set foldmethod=manual - выделяем участок с помощью v и говорим zf
:set foldmethod=marker - сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end - задаем маркеры начала и конца блока
Рубрики
vim \ vi \ text editor

vim печать

:ha[rdcopy]                   распечатать документ
:set printoptions=duplex:off  отключить двустороннюю печать