CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.09.2016

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Приложения

Поваренная Книга Vim

Это страница Поваренной Книги Vim. Она содержит короткие рецепты, как сделать много простых и не простых вещей в Vim. Для начала ознакомления вы уже должны знать основы Vim, однако каждая команда детально объясняется.

Каждый набор инструкций является завершенным. Чувствуйте себя как дома и выбирайте именно то что вам нужно.

Содержание

Перестановка символов

Если вы быстро печатаете, ваши пальцы могут легко обогнать ваш разум. Часто люди путают местами символы. Например "the" превращается в "teh".

Для перестановки двух символов, к примеру "e" и "h", поместите курсор на "e" и наберите xp.

Команда "x" удаляет символ ("e") и "p" вставляет его после курсора (который теперь находится над "h".)

Интерактивная замена одного слова другим

Предположим, вы хотите заменить в тексте каждое слово "идиот" словом "менеджер". Но вы хотите иметь возможность предпросмотра до замены.

Для этого нужно:

1.

1G

Перейти в начало документа

2.

/идиот

Найти первое вхождение слова "идиот"

3.

cwменеджер

Заменить слово (cw) на менеджер

4.

n

Повторить последний поиск (найти следующего идиота.)

5.

.

Повторить последнее редактирование (заменить слово на "менеджер"
(Если вы не хотите менять слово, пропустите этот шаг

Повторяйте шаги 4 и 5 пока не замените все вхождения

Какая Дева!?

Церковь только что купила свой первый компьютер и учится его использовать. Церковный секретарь решила составить формальную прощальную проповедь для использования на похоронах. Имя покойного она решила заполнять в выражение "<имя>". При очередных похоронах она бы просто заменяла это выражение на имя покойного.

Как-то раз, когда проходили двое похорон, первое - некоей Марии, второе для некоей Эдны. Так что секретарь применила глобальную замену "<имя>" на "Мария". Отлично. Затем, во время вторых похорон, она заменила "Мария" на "Эдна". Это было ошибкой.

Представьте удивление священника, когда он начал чтение и произнес "Рождение Пресвятой Девы Эдны".

Интерактивная замена одного слова другим (метод командной строки)

Предположим, вы хотите заменить в тексте каждое слово "идиот" словом "менеджер". Но вы хотите иметь возможность предпросмотра до замены.

Выполните команду :

:%s/\<идиот\>/менеджер/gc

Эта команда будет производить замену и останавливаться после каждого изменения, чтобы дать вам возможность подтвердить его. Ввод "y" означает принятие, а "n" - отказ от изменения.

Команда состоит из:

:

Вход в командный режим

%

Выполнить эту команду на всех строках (% - синоним "от первой до последней строки".)

s

Сокращенная форма команды :substitute.

/\<идиот\>/

Это выражение определяет текст, над которым предполагается поколдовать. \</b0> отмечает начало слова и \> - его конец.

/менеджер/

Подставляемый текст

gc

Флаги

g
Глобально -- Заменяет каждое вхождение, не используя "с начала и до конце" на каждой строке
c
Подтверждение -- Спрашивать перед каждой заменой

Замена одного слова другим одной командой

Предположим, вы хотите заменить в тексте каждое слово "идиот" словом "менеджер". И нет необходимости в подтверждении, так как все идиоты - менеджеры.

Используйте команду:

:%s/\<идиот\>/менеджер/g

Команда состоит из:

:

Вход в командный режим

%

Выполнить эту команду на всех строках (% - синоним "от первой до последней строки".)

s

Сокращенная форма команды :substitute.

/\<идиот\>/

Это выражение определяет текст, над которым предполагается поколдовать. \</b0> отмечает начало слова и \> - его конец.

/менеджер/

Подставляемый текст

g

Глобальный флаг -- Этот флаг говорит Vim заменить каждое вхождение на лини, то есть не только первое.

Перемещение текста (в стиле Vi)

Предположим вы хотите переместить параграфы с верхней части теста в нижнюю. Есть несколько способов сделать это. В этом примере мы используем стиль Vi. В следующей части Перемещение текста (Визуальный режим) мы делаем это, используя команды Vim.

Выполните следующие действия:

Команды

Разъяснение

1.

 

Переместите курсор на верх участка, который вы хотите переместить.

2.

ma

Поместите здесь метку "a". (Vim не выдает сообщения о выполнении этой команды. Другими словами, экран не изменится.)

3.

 

Переместите курсор внизу участка, который вы хотите переместить.

4.

d'a

Удалите метку "a". Это поместит удаленный текст в буфер.

5.

 

Переместите курсор на строку, где следует находиться тексту. Текст будет на следующей строке.

6.

p

Вставить текст под курсором.

Перемещение текста (Визуальный способ).

Предположим, вы хотите переместить параграфы с верхней части теста в нижнюю. Есть несколько способов сделать это. В этом примере мы используем стиль Vim. В предыдущей части Перемещение текста (старый способ) мы делали это, используя команды Vi.

Выполните следующие действия:

Команды

Разъяснение

1.

 

Переместите курсор на верх участка, который вы хотите переместить.

2.

v

Войдите в визуальный режим. (Если вы хотите переместить только полные линии, используйте команду V, которая включает визуальный строчный режим.

3.

 

Переместите курсор внизу участка, который вы хотите переместить. Текст, предназначенный для перемещения, будет выделен.

4.

d

Выполняет визуальное удаление. Другими словами, удалить выделенный текст.

5.

 

Переместите курсор на строку, где следует находиться тексту. Текст будет на следующей строке.

6.

p

Вставить текст под курсором.

Копирование участка текста из одного файла в другой (В стиле Vi)

Есть несоклько способов копировать текст из одного файла в другой. В этом разделе более традиционные команды Vi. В следующем разделе Копирование с использованием визуального режима, мы выполним те же операции использую Визуальный режим.

Чтобы скопировать участок текста из одного файла в другой, введите следующие команды:

Команды

Разъяснение

1.

 

Откройте для редактирования файл, содержащий текст, который вы хотите скопировать.

2.

 

Перейдите к верхней строке копируемого участка.

3.

ma

Поставить на строку метку "a".

4.

 

Перейдите к нижней строке копируемого участка.

5.

y'a

Скопировать (y) текст с текущей позиции до отметки "a" ('a)

6.

:split второй-файл

Открыть другое окно, содержащее второй файл. (Файл, в который должен быть скопирован текст.)

7.

 

Переместите курсор на строку куда должен быть скопирован текст. Текст будет размещен на следующей строке.

8.

p

Вставить текст после курсора.

Копирование участка текста из одного файла в другой (Визуальный Метод)

Есть несоклько способов копировать текст из одного файла в другой. В этом разделе мы используем более новый, визуальный режим. В предыдущем разделе описан старый Vi-Стиль.

Чтобы скопировать участок текста из одного файла в другой, введите следующие команды:

Команды

Разъяснение

1.

 

Откройте для редактирования файл, содержащий текст для копирования.

2.

 

Перейдите к верхней строке копируемого участка.

3.

v

Войти в визуальный режим. Если вы хотите копировать текст целыми строками, используйте V для включения Визуального Строчного Режима

4.

 

Перейдите на верхнюю стоку копируемого текста. Текст будет подсвечен.

5.

y

Копировать (y) текст.

6.

:split второй-файл

Открыть другое окно, содержащее второй файл. (Файл, в который должен быть скопирован текст.)

7.

 

Переместите курсор на строку куда должен быть скопирован текст. Текст будет размещен на следующей строке.

8.

p

Вставить текст после курсора.

Сортировка участка текста (Перемещение текста (в стиле Vi)

Часто вы будете редактировать файл, содержащий список имен. К примеру, список объектных файлов для компоновки в программу.

Пример:

version.o
pch.o
getopt.o
util.o
getopt1.o
inp.o
patch.o 
backupfile.o

Этот список мило бы выглядел в алфавитном порядке. Или по меньшей мере в последовательности ASCII. Для сортировки по алфавиту введите следующие команды:

Команды

Разъяснение

1.

 

Переместите курсор на первую сортируемую строку.

2.

ma

Отметить первую строку как a.

3.

 

Перейти вниз сортируемого текста.

4.

!'asort

Команда ! указывает Vim пропустить текст через UNIX команду. 'a указывает редактору что обработать нужно участок с текущей строки и до метки a. Сортировку выполняет команда sort.

Результат:

backupfile.o
getopt.o
getopt1.o
inp.o
patch.o
pch.o
util.o
version.o

Предупреждение

На практике в большинстве Make-файлов (файл, используемый UNIX для контроля компиляции) больше похож на:

OBJS = \
version.o       \
pch.o           \
getopt.o        \
util.o          \
getopt1.o       \
inp.o           \
patch.o         \
backupfile.o

Заметьте, что обратный слеш (\) использован для индикации конца строки. После сортировки получается:

OBJS = \
backupfile.o
getopt.o
getopt1.o       \
inp.o           \
patch.o         \
pch.o           \
util.o          \
version.o       \

Имена файлов в порядке, но обратные слеши неправильно расставлены. Не забудьте исправить их до продолжения редактирования.

OBJS = \
backupfile.o    \
getopt.o        \
getopt1.o       \
inp.o           \
patch.o         \
pch.o           \
util.o          \
version.o

Сортировка участка текста (Визуальный Метод)

Часто вы будете редактировать файл, содержащий список имен. К примеру, список объектных файлов для компоновки в программу.

Пример:

version.o
pch.o
getopt.o
util.o
getopt1.o
inp.o
patch.o
backupfile.o

Этот список мило бы выглядел в алфавитном порядке. Или по меньшей мере в последовательности ASCII. Для сортировки по алфавиту введите следующие команды:

Команды

Разъяснение

1.

Переместите курсор на первую сортируемую строку.

2.

V

Войти в строчный визуальный режим

3.

Перейти вниз сортируемого текста.

4.

!sort

Команда ! указывает Vim обработать подчеркнутый текст командой UNIX. Обрабатывает текст команда sort.

Предупреждение

Смотрите секцию предупреждение о сортировке для короткого ознакомления с проблемами при использовании этой команды.

Работа с Make-файлом и другими SOB файлами

Одной их проблем с файловым форматом, используемым UNIX командой make является его крайняя сумасбродность.

К примеру, это корректно:

	prog: prog.c	
		cc -g -o prog prog.c

А это - нет:

	prog: prog.c	
		cc -g -o prog prog.c

С первого взгляда может показаться, что оба примера одинаковы. Но присмотритесь получше. Строка "cc" в первом случае начинается с табуляции. Вторая - с восьми пробелов. (На экране не видно отличия межде пробелами и символом табуляции! Вам необходима более качественная видеокарта).

Так как их отличить, если и на экране (или печатной странице) они выглядят одинаково? Никак. Вы думаете, это немного несправедливо. Особенно когда make работает с одним, но не работает с другим. Но кто угодно может сказать, что UNIX справедлив. К счастью, в Vim есть режим, показывающий, что именно находится в вашем файле. Команда

:set list

переведет вас в этот режим. Когда экран установлен в "list mode", отображаются все символы. Табуляции выглядят как "^I" и конец строки обозначен как $. Таким образом, два наши примера выглядят так:

	prog: prog.c$
	^Icc -g -o prog prog.c$

и

	prog: prog.c$
		cc -g -o prog prog.c$

Теперь можно легко разобрать, которая строка содержит табуляцию.

Форматирование параграфа

Редактор Vim не является текстовым процессором. Парень, это не текстовый процессор. Есть куча вещей, которые лучше получаются при редактировании текста.

Когда строка выходит за область печати, текстовый процессор автоматически переходит на новую строку. Редактор Vim позволяет делать строки настолько длинными, насколько вы того хотите. Командой:

:set wrapmargin=70

вы указываете Vim автоматически переходить на новую строку при длине текущей в 70 символов. (Вы можете задать какое угодно число длины строки.)

Это позволит вводить текст гораздо проще. Но не решает проблем редактирования. Если вы введете абзац и затем решите удалить половину слова в первой строке, Vim не переформатирует текст.

Вы может форсировать переформатирование командами:

Команды

Разъяснение

1.

 

Перейдите в начало абзаца.

2.

gq}

"!" указывает Vim передать через программный канал участок текста для фильтрации. } указывает Vim что передается одни абзац.

3.

fmt -70

UNIX команда fmt - примитивный форматировщик. Она выполняет пословесную обработку достаточную для текстовой документации. -70 указывает fmt форматировать строки по 70 символов на строку.

Поиск процедуры в программе на Си

Vim был разработан программистами для программистов. Вы можете использовать его для нахождения процедуры внутри набора программных файлов на C или C++.

Но сначала вым нужно сгенерировать таблицу файлов , называемый "tags" файлом. (Этот файл по грубому называется tags). Команда ctags генерирует эти файловые таблицы.

Для генерации таблицы содержания всех программных файлов на C в текущей рабочей директории используйте следующие команды:

$ ctags *.c

Для C++ используйте команду:

$ ctags *.cpp

Если вы используете отличное от .cpp расширение для ваших C++ файлов, используйте его вместо .cpp.

Сгенерировав этот файл, укажите Vim, что хотите редактировать процедуру и он определить местоположение этой процедуры и переместит вас к ее содержимому. К примеру, если вы хотите редактировать процедуру write_file, используйте команду:

$ vim -t write_file

Предположим вы просматриваете процедуру write_file которая вызывает процедуру setup_data и вы хотите ее просмотреть. Чтобы перейти к этой функции, поместите курсор в начале выражения setup_data и нажмите Ctrl+]. Это укажет Vim перейти к объявлению этой процедуры. Это перемещение произойдет даже если Vim для этого понадобится перейти на другой файл.

Примечание:

Если отредактировали текущий файл и не сохранили его, Vim выведет предупреждение и проигнорирует команду Ctrl+].

Рисование комментариев

Мне нравится помещать большую закомментированную секцию перед каждой процедурой. К примеру:

/*******************************************************
* Программа -- Решает -- Решает все мировые проблемы.  *
*     Все. На раз. Это будет великая    *
*   программа когда я ее закончу.                      *
*******************************************************/

Рисование этих секций - по меньшей мере скучное занятие. Но у Vim есть замечательная возможность, называемая "сокращения", которая значительно упрощает дело.

Сначала вам нужно создать инициализационный файл Vim, называемый ~/.vimrc. (Сперва этот файл может выглядеть как инициализационный файл ex. Это так. Фактически команда Vim является режимом редактора ex .)

Файл ~/.vimrc должен содержать строки:

        
:ab #b /************************************************
:ab #e ************************************************/

Эти команды определяют набор сокращений Vim. Что такое сокращение Vim? Это выражение, которое заменяет другое выражение. Когда Vim увидит сокращение, он расширите его до полного выражения. В этой секции мы определили сокращение #b, которое расширяется в начальную линию комментария. Сокращение #e делает тоже самое.

Итак, чтобы создать закомментированную секцию, наберите #b. На экране окажется:

/************************************************

Введите комментарии, включая символы "*" в конце и начале. Закончите комментарий вводом #e. Это введет конечную стору комментария.

Примечание:

Эта страница была написана в Vim. Как же мы вводили #b и #e? Легко, набирая #bb и удаляя символ. (Нельзя написать #b, ведь в таком случае он будет расширен).

Еще несколько полезных комманд, которые может захотеть программист ввести в ~/.exrc:

        
:set autoindent
:set autowrite
:ab #d #define
:ab #i #include
:ab #b /************************************************
:ab #e ************************************************/
:ab #l /*----------------------------------------------*/
:set sw=4

Настройка автоматического отступа (autoindent) указывает Vim в новой строке делать такой же отступ, как и в предыдущей. Очень полезная вещь для написания программ. Настройка автоматической записи указывает Vim писать в старый файл при переключении между файлами.

Аббревиатуры #d, #i и #l определяют полезные для программистов выражения.

В заключение, набор команд sw=4 указывает ширину сдвига (число символов перемещаемых командой сдвига (< и >>)).

Это очень полезно при использовании 4 пробелов при отступе в ваших программах на C или C++ . (Обучение в Rice University показало, что это лучший размер для отступа.)

Чтение man страницы

Вы можете использовать редактор Vim для просмотра текстовых файлов. Один из самых полезных способов - просмотр man страниц. Для этого применяется конвейер из трех команд.

Первая - man для взятия страницы. Следующая - ul, переводящая эскейп коды подчеркивания и выделения текста в что-то читабельное и наконец Vim для просмотра файла.

Итак, наши команды это:

$ man тема | ul -i | vim -

Man-страница будет сгенерирована и затем отображена в окне Vim. Теперь вы можете ваши обычные команды редактирования для просмотра текста.

Удаление символа возврата каретки из MS-DOS файла

Если вы когда-нибудь пытались редактировать MS-DOS файл, то заметили что каждая линия заканчивается символом ^M. Причиной тому служит веселенький способ обращения MS-DOS к концу строки. (Для понимания некоторых аспектов этой проблемы см. Историю EOL).

Для удаления символов ^M из MS-DOS файла введите команду:

:1,$s/{Ctrl+V}{Ctrl+M}//{Enter}

Двоеточие в начале команды (:) указывает Vim войти в ex режим. Все команды ex начинаются с указания диапазона строк, в данном случае с первой (1) по последнюю ($). Слеш The slash указывает начало "заменяемого текста". {Ctrl+V} указывает Vim обращаться к следующему символу как к регулярному даже в случае если он является специфичным. Следующий символ - это {Ctrl+M}. (Он был бы обращением к {Enter} без {Ctrl+V}.) Следующий слеш заканчивает выражение "заменяемый текст". Следующее выражение является "заменяющим текстом" отграниченным слешами. В данном случае это пустота (//).

Обрезание пробелов в конце строки

Некоторые люди считают пробелы и табуляцию в конце строки бесполезными, расточительными и уродливыми. Для удаления невидимых пропусков в конце каждой строки введите следующую команду:

:1,$s/[ ]*$//

Двоеточие (:) указывает Vim войти в режим команд ex. Все команды ex начинаются с указания диапазона строк, в данном случае весь файл (с 1 до последней строки: $).

Первый набор слешей отграничивает "заменяемый текст". Квадратные скобки содержат возможные варианты совпадения. Так [ ] указывает совпадение пробела или табуляции. Звездочка (*) означает что предыдущее совпадение (пробел или табуляция) могут повторяться любое число раз. Знак доллара ($ указывает на конец строки.

Итак, [ ]*$ указывает Vim просмотреть любое количество пробелов или табуляций находящихся в конце строки.

Затем найденное заменяется текстом между слешами. Так как этот текст - пустышка, то пробелы и табуляция фактически удаляются.

Упс, я оставил файл защищенным от записи

Предположим вы редактируете файл и внесли много изменений. Это очень важный файл и для предотвращения внесения случайных правок вы сделали его защищенным от записи, даже для себя.

Редактор Vim позволяет вам редактировать защищенные от записи файлы с небольшим или вообще без предупреждения. Единственная трудность в том, что когда вы пытаетесь выйти, используя "ZZ", происходит ошибка:

file.txt    File is read only

и выхода из Vim не происходит.

Так что же делать? Вы не хотите выбросить высе изменения, но вам нужно выйти из Vim для того чтобы снять запрет на запись.

Весь фокус в запуске :shell команды. Эта команда выводит вас из Vim запуском командного процессора (shell) под Vim

Теперь вы можете разрешить запись файла:

$ chmod u+w файл.txt

и выйти из командного процессора, возвратившись в Vim

$ exit

В конце вам нужно заставить Vim записать файл используя команду:

:w!

(файл до сих пор считается защищенным от записи, поэтому и нужно использовать принудительную опцию (!) для проведения попытки записи.)

Примечание:

Неплохо было бы находиться в режиме командного процессора, запущенного :shell командой. Просто потому что довольно легко забыть, что он запущен из-под Vim. Может получиться так, что будет запущен командный процессор, который запустит Vim, который запустит командный процессор, который запустит Vim, который .... Действуя таким способом вы можете легко расходовать много ресурсов и вызвать большую неразбериху.

Сокращая прибывание в :shell сессии вы избегаете большинства проблем.

Замена "Последний, Первый" на "Первый Последний"

Имеется список имен в виде:

Последний, Первый

Как привести это к виду:

Первый Последний

Осуществить это можно с помощью такой команды:

:1,$s/\([^,]*\), \(.*$\)/\2 \1/

Двоеточие (:) указывает Vim что выражение является командой в стиле ex.

Диапазоном строк для этой команды является весь файл, что задано диапазоном 1,$.

s (замена) указывает Vim производить строчную замену.

Старый текст представлен сложным регулярным выражением. Ограничители \( ... \) используются для указания редактирору, что отмечает регулярное выражение, которое должно быть интерпретировано специально.

Текст в первых \( ... \) определен как \1 в заменяющем тексте. Второй участок текста внутри \( ... \) определен для \2 и так далее.

В данном случае первым регулярным выражением является любая группа символов в коcodeй не/codeятой. [^,]codede> /codeачает "что угодно кроме запятой", * определяет набор (ноль или более символов).

Второе выражение подставляет что угодно: .* до конца строки: $.

Результатом этой подстановки в том, что первое слово в строке определяется как \1 и второе как \2. Эти значения используются в конце команды для перестановки слова.

Схема, приведенная ниже, показывает отношение между строками ограниченными маркерами \( \) и \1, \2.

:1,$s/\([^,]*\), \(.*$\)/\2 \1/               
      ^^     ^^  ^^   ^^^ ^  ^
      ||     ||  ||   ||| |  +-----  Строка подставляемая
      ||     ||  ||   ||| |          первым \( \)
      ||     ||  ||   ||| +--------- Строка подставляемая
      ||     ||  ||   |||            вторым \( \)
      ||     ||  ||   ||+----------- Разделение слешами
      ||     ||  ||   ||             старых/новых строк
      ||     ||  ++---++------------ Вторая \( \)
      ++-----++--------------------- Первая \( \)

Следующая схема раскрывает смысл различных частей регулярного выражения в примере.

:1,$s/\([^,]*\), \(.*$\)/\2 \1/
        ^^^^^  ^^  ^^^
        |||||  ||  ||+--- Конец строки
        |||||  ||  |+---- Повторяется 0 или более раз
        |||||  ||  +----- Любой символ
        |||||  ||  +++--- Любой повторный символ
        |||||  ||             до символа конца строки
        |||||  |+-------- Символ пробела
        |||||  +--------- Символ запятой
        ||||+------------ Повторяется 0 или более раз
        |||+------------- Закрывает [] выражение
        ||+-------------- Символ запятой
        |+--------------- Сравнение любого за исключением
        |                 следующего символа
        +---------------- Начало набора совпадений
        ++++------------- Совпадает все кроме запятой
            +------------ Повторяется 0 или более раз
               +--------- Пока не будет встречена запятая

Как редактировать все файлы содержащие заданное слово

Для этого потребуется fgrep и специальный консольный символ обратного апостроф (`).

Чтобы редактировать все файлы програм на C в которых есть выражение уровень_отступа выполните команду:

$ vim `fgrep -l уровень_отступа *.c`

fgrep -l уровень_отступа *.c ищет во всех файлах, чье название закачивается на .c слово и выводит их список.

Так как эта команда находится между символами (`) , ее результат (список файлов) помещается в командную строку.

Затем для этих файлов запускается редактор Vim . Далее для перемещения между файлами могут быть использованы команды :n{Enter} и :rew{Enter}.

Как редактировать все файлы содержащие заданное слово используя встроенный grep

Запустите Vim.

Выполните команду:

:grep >слово</i0> >список_файлов

Будет найдено первое вхождение слово в данных файлах и установлен курсор на данную строку. Вы можете использовать команду :cn для поиска следующего вхождения.




Комментарии

dsuchka, Mon Dec 14 03:05:21 2009:
вместо :shell
удобнее :stop + работа в родительском shell'е (chmod) + fg
pss, Wed Feb 11 22:33:09 2009:
группа символов в коcodeй не/codeятой. [^,]codede> /codeачает "что угодно кроме запятой", * определяет набор (ноль или более символов).

Брррр :)
Vair, Thu Mar 29 09:22:05 2007:
Man-страница будет сгенерирована и затем отображена в окне Vim. Теперь вы можете !!!использовать!!! ваши обычные команды редактирования для просмотра текста.

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds