07.08.2012 21:20
OlegON
 
Достаточно специфический редактор, каждый раз мучаюсь, запоминая его команды. Вот шпаргалка.

01.09.2012 14:43
OlegON
 
В общем, заставляю себя с ним работать :) Из хитростей, которые забываются и в vimtutor отсутствуют, как я помню...

например, есть в тексте "Некая строка в кавычках" и нам надо ее поменять, ставим курсор на первую " и набираем ci", после чего все, что в кавычках пропадет и можно будет набрать новое значение.

если форматирование разбрелось, то можно набрать gq и стрелку в нужном направлении, текст выровняется.

для редактирования писем в mutt использую vim
Код:
set editor = '/usr/bin/vim -X "+set tw=79" "+set fo=want" "+set wm=0" "+set syntax=off" -c start '
fo=want в данном случае обозначает форматирование текста с переносом строк
02.09.2012 10:33
OlegON
 
* - поиск слова под курсором
gd - поиск слова под курсором в пределах текущей функции (обычно про переменную речь)
gD - поиск первого появления переменной под курсором
[[ — переход к началу функции
%s/foo/bar/c — замена с подтверждением
perldo s/foo/bar/g — perl регулярные выражения
; — повторить последнее перемещение
`. — перейти к последней редактируемой строке
`` — перейти к последней активной строке
% — перейти к парной скобке
ga — отобразить код символа под курсором в статусной строке
xp — поменять соседние буквы местами
J — слияние двух соседних строк (убирает \n)
di{ — удалить текст внутри активных фигурных скобок. Работает для любых других скобок и кавычек
da{ — то же самое вместе со скобками
cw - замена слова под курсором (удаление слова и переход в режим вставки)
. - повтор предыдущей команды, можно, например, повторять cw
02.09.2012 10:50
OlegON
 
пример поиска и изменения второго параметра param = 1 в конфиге:
/param
nwwr2
т.е. n - следующее вхождение поиска, ww - два раза пропуск слова, r - замена текущего значения
02.09.2012 11:17
OlegON
 

Цитата:
#vi mamapapa.txt - открыть один файл
#vi mamapapa.txt ++11 - открыть файл и перейти к строке 11.
#vi mama.txt papa.txt - открыть файл mama.txt, после выхода из него открыть файл papa.txt
#vi -о mama.txt papa.txt - открыть сразу все файлы.
Цитата:
Самые часто используемые в vi клавиши — клавиши перемещения. Это знаменитые h j k l, соответствующие стрелкам влево, вниз, вверх и вправо. Стрелочки тоже работают (при правильном указании терминала). Также можно использовать быстрые клавиши:
0 ("ноль") — в начало текущей строки;
^ — в начало текущей строки (к первому непробельному символу);
$ — в конец текущей строки
w — на слово вправо
b — на слово влево
W — до пробела вправо
B — до пробела влево
} — абзац вниз
{ — абзац вверх
<Ctrl-f> — на страницу (экран) вниз
<Ctrl-b> — на страницу (экран) верх
gg — перейти в начало файла
G — перейти в конец файла
<number>G — перейти на конкретную строку <number>
/<text><CR> — перейти к <text>
?<text><CR> — то же самое, но искать назад
n — повторить поиск
N — повторить поиск назад
[[ — в начало функции
“ — к месту выполнения команды [[
Цитата:
R — перейти в режим ввода с забиванием текста
r — заменить один символ
i — перейти в режим ввода с текущей позиции
I — переместиться в начало строки и перейти в режим ввода
a — перейти в режим ввода после курсора
А — переместиться в конец строки и перейти в режим ввода
o — перейти в режим ввода с новой строки под курсором
O — перейти в режим ввода с новой строки над курсором
x — удалить символ под курсором
X — удалить символ влево (удалить символ перед курсором)
d — используется совместно с командами перемещения. Удаляет символы с текущего положения курсора до положения после ввода команды перемещения. Пример: dw - удаляет символы с текущего до конца слова; diw - удаляет слово под курсором
с — команда аналогичная d, но после удаление переходит в режим ввода. Очень удобная альтернатива команде R
dd — удалить текущую строку (вырезать)
d<число>d — стирание числа строк начиная с текущей
yy — копирование текущей строки в неименованный буфер
y<число>y — копирование числа строк начиная с текущей в неименованный буфер
p — вставка содержимого неименнованного буфера под курсором
P — вставка содержимого неименнованного буфера перед курсором
J — слияние текущей строки со следующей
u — отмена последней команды
U — отмена всех последних изменений в строке.
<Ctrl-r> или :redo вперед по изменениям.
. — повтор последней команды
Цитата:
^G - показать информацию о файле
:<number> - перейти на строку с номером <number>
<number>G - перейти на строку с номером <number>
:set number - отобразить слева нумерацию строк (:set nonumber - спрятать нумерацию)
:set wrap - переносить длинные строки(:set nowrap - не переносить)
:sy[ntax] on/off - включить/выключить подсветку синтаксиса
:colorscheme <name> - задать цветовую тему (где <name> имя темы, TAB работает как авто-дополнение)
:h или :help - список возможной помощи(:viusage, :exusage)
привести концы строк в файле к виду dos или unix соответственно:
:set fileformat=dos
:set fileformat=unix
Задать размер табуляции в 4 пробела:
:set tabstop=4
:set expandtab
конвертация кодировки:
Цитата:
:set fenc=cp1251<CR>
:set fenc=koi8-r<CR>
:set fenc=ibm866<CR>
:set fenc=utf-8<CR>
02.09.2012 11:22
OlegON
 
интересный скринкаст (англ.)
02.09.2012 11:35
OlegON
 
Установка русского словаря:
Код:
:setlocal spell spelllang=ru_yo,en_us
(либо без буквы ё)
Код:
:setlocal spell spelllang=ru_ru,en_us
02.09.2012 11:39
OlegON
 
если вдруг обнаружили, что редактируете системный файл без прав root
Код:
:w !sudo tee %
02.09.2012 11:56
OlegON
 
Диграф.
Для того чтобы использовать это заклинание, ваш Vim должен быть скомпилирован с фичей +digraph. Проверить наличие этой фичи можно набрав :version и поискав её в списке фич.

Кастуется заклинание вот так: Ctrl+K {char1} {char2}. Например для того, чтобы набрать © нужно нажать Ctrl+KCo, для ™ — Ctrl+KTM, а для длинного тире (—) соответственно Ctrl+KM-. Большинство комбинаций подобраны так, чтобы легко запоминались. Вот ещё несколько примеров: » это Ctrl+K>>, ½ это Ctrl+K12, ± это Ctrl+K+-. Комбинации эти называются, как вы уже сообразили, диграфами. Их можно задавать самому с помощью команды :digraphs {char1} {char2} {number} — {char1} и {char2} это символы, которые вы будете набирать после Ctrl+K, a {number} это Unicode код символа. Но стандартный набор диграфов достаточно велик, так что врядли вам прийдется задавать свои диграфы, разве что для того, чтобы назначить символу комбинацию, более понятную вам, чем стандартная. Кстати диграфы можно набирать по-другому: {char1} Backspace {char2}. Но это работает только если у вас выставлена опция 'digraph' и не используется так называемый Input Method (если вы не знаете что это такое, он скорее всего не используется).
Список диграфов можно посмотреть, введя :digraphs без параметров. Список будет довольно обширный, поэтому имеет смысл вывести его в файл, следующим способом: :redir > filename | digraphs | redir END. Можно вместо файла отредиректить в регистр, например в "* вот так: redir @*> | digraphs | redir END и потом куда-нибудь вставить.
Часовой пояс GMT +3, время: 19:34.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.