Vim Введение " Просто о Vim "


part1.txtI have coined a phrase for myself - 'CUT to the G':1. Concentrate 2. Understand3. Think4. Get Things Donepart2.txt



Pdf просмотр
страница4/6
Дата24.11.2016
Размер1.18 Mb.
Просмотров1748
Скачиваний0
1   2   3   4   5   6
part1.txt
I have coined a phrase for myself - 'CUT to the G':
1. Concentrate
2. Understand
3. Think
4. Get Things Done
part2.txt
Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing -
It's all in the mind. That's why it's so hard.
Теперь запустим
:e part1.txt и потом
:e part2.txt
,
,
Обратите внимание что у вас теперь есть второй файл
? открытый для редактирования Как же переключиться к первому файлу В данном случае вы можете запустить
:b 1
('b'uffer)
'1'. для переключения к буферу номер
Вы можете также запустить
:e part1.txt для открытия и отображения существующегобуфера
,
,
,
,
Вы можете просмотреть какие буферы были загружены и соответственно какие файлы редактируются запустив
:buffers
,
, или в короткой форме
:ls,
('l'i's't) что означает список буферов
,
Буферы будут автоматически удалены когда вы закроете Vim, поэтому вам не нужно делать ничего
,
,
, особенного кроме как убедиться что вы сохранили файлы Однако если вы действительно хотите удалить
,
,
, буфер например для освобождения памяти вы можете использовать команду
:bd 1
('d'elete)
для удаления
('b'uffer)
'1', буфера номер и так далее
Смотрите
:help buffer-list для изучения всехкомандработы с буфером
Множество окон
,
,
,
Мы увидели как редактировать несколько файлов одновременно но что если мы хотим видеть два разных
,
, файла одновременно Например вы хотите открыть две разных главы своей книги так чтобы вы могли
/
, писать вторую главу в соответствии с формулировками описанием данным в первой главе Или вы хотите
/ копировать вставить некоторые части из первогофайла во второй файл "view",
В предыдущем разделе мы использовали чтобы редактировать несколько буферов Vim называет эти "views"
"window"
,
окнами Это использование термина не нужно путать с окнами десктопных приложений
('windows') - которые обычно ассоциируются с самими приложениями Для нас окна это представления
('views') разных файлов part1.txt part2.txt,
Давайте возьмем простые файлы и
которые мы использовали в последнем разделе Сперва part1.txt, загрузим используя
:e part1.txt
,
Теперь давайте откроем новый буфер разделив окно с помощью команды
:new
,
Теперь вам доступно обычное редактирование в новом буферев новом окне за исключением
,
,
,
того что вы не можете сохранить текст поскольку вы не ассоциировали имя файла с буфером Для того
, чтобы вы могли сохранить отредактированное в буфере используйте
:w test.txt
?
Как нам теперь переключиться между двумя окнами Используйте ctrl-w
<
>
клавиша перемещения для переключения между окнами Перемещайтесь клавишами h,j,k,l
(
, или клавишами со стрелками в этом примере только
).
, клавиши вверх и вниз имеют смысл Запомните комбинация клавиш ctrl-w
('w'indows).
работает с окнами
Вы можете нажать ctrl-w
, . . дважды те ctrl-w ctrl-w для циклического переключения между открытыми окнами
,
, -
Практическая ситуация в которой применение нескольких окон полезно это когда вы хотите посмотреть две разные части одного и того же файла одновременно Просто запустите
:sp
('sp'lit)
, для создания разделенного окна а затем вы можете пролистать "
"
,
каждое окно до нужного места и продолжить редактирование Так как они оба окна одного буфера изменения в одном окне будут немедленно отражены в другом окне Вы также можете использовать ctrl-w s вместо
:sp
,
Для создания вертикального разделения используйте
:vsp или ctrl-w v
Для закрытия окна выполните
:q
, как обычно
,
,
,
,
Теперь когда мы увидели как открывать и использовать несколько окон давайте посмотрим как дальше работать с дисплеем


,
,
,
Предположим у вас окно разделено на два а вы хотите поменять окна местами чтобы вы могли
, сконцентрировать свое зрение на нижней или верхней части экрана компьютера в соответствии с
? вашими предпочтениями Нажмите ctrl-w r
(
) "r'otate для ротации окон

?
Вы хотите сделать текущееокно верхним Нажмите ctrl-w K

,
?
Хотите изменить размер окна сделав его больше или меньше Запустите
:resize 10
для задания
10
, . .
размерав строк и тд

,
?
Хотите сделать текущее окно максимального размера что бы вы могли сосредоточиться на нем
Нажмите ctrl-w _
,
,
Думайте о подчеркивании как признаке того что другие окна должны быть как можно меньше

('equal')
?
Хотите выровнять окна снова Нажмите ctrl-w =
Смотрите
:help windows для большей информации оработе с окнами
Множество закладок (Tabs)
Firefox,
,
Если вы используете вы скорее всего уже использовали вкладки которые позволяют открывать
-
Firefox,
,
несколько веб сайтов в одном окне и вы можете переключаться между ними без головной боли
, связанной с переключением между несколькими окнами Так вот вкладки работают аналогично и в Vim.
,
("tab pages").
Крометого что ихназывают закладками
Запустите
:tabnew
(
для открытия новой закладки в новом буфере аналогично
:new
).
Как теперь
? переключиться между закладками Нажмите gt
('g'o)
('t'ab) для перейти к следующей закладке и
gT
для
('g'o)
, . .
('t'ab).
перейти в противоположном направлении те на предыдущую закладку
Лично я предпочитаю использовать комбинации alt-j и
alt-k
, для тех же действий аналогично клавишам с символами j
и k
, а также ctrl-w j и
ctrl-w k
(
). для работы с окнами разделенными по горизонтали Для
, vimrc
:
включения этих комбинаций добавьте следующие строки в ваш файл " Shortcuts for moving between tabs.
" Alt-j to move to the tab to the left
noremap gT
" Alt-k to move to the tab to the right noremap gt
('c'lose)
('tab'),
Для закрытия вкладки запустите
:tabc или
:q
,
,
,
Вы даже вместо этого можете открыть текст в новом окне или в новой вкладке Например
:help tabpage откроет подсказку в горизонтально разделенном окне Для просмотра подсказки в новой вкладке используйте
:tab help tabpage
,
Если вы хотите изменить порядок закладок используйте
:tabmove
,
Например для перемещения текущей
, закладки на первую позицию используй
:tabmove 0
и так далее
Смотри
:help tabpage
, для подробной информации по закладкам и другим операциям которые вы можете
, выполнить таким как
:tabdo
, для операции над каждой открытой закладкой и изменения заглавия закладок
(
:help setting-guitablabel
), . .
и тд
Итоги
Vim

, имеет несколько путей для редактирования нескольких файлов одновременно буферы окна и
, закладки Использование этих возможностей зависит от ваших предпочтений Например использование
, нескольких закладок может заменять использование нескольких окон Важно использовать то что для вас является наиболееудобным и комфортным
Внешние ссылки
http://en.wikiquote.org/wiki/The_Fellowship_of_the_Ring
Vim :


Управление персональной информацией
Введение
«
» (PIM)
,
Глава об управлении персональной информацией в книге о редакторе кажется странным не правда
?
,
"
",
, ли Да есть много профессионального ПО которое работает с персональной информацией так почему мы неможем использовать текстовый редакторVim
?
для этой цели

«
»,
Управление персональной информацией это организация всей вашей информации такой как ваш
,
,
(
,
), список дел дневник справочные материалы например важные номерателефонов блокнот и так далее
,
,
Сложить все это в одном удобном месте может быть очень удобно и мы будем реализовывать это с помощью Vim и нескольких плагинов
,
PIM
,
Я склонен думать что система организована лучше чем вики Вики это быстрый способ связать
,
,
, воедино различные документы которые взаимосвязаны но независимы сами по себе Неудивительно что 'wiki'
"
"
-
, слово означает быстрый на гавайском языке Подумайте о сайте есть домашняя страница есть
,
, взаимосвязанные страницы на которые вы видите ссылку и каждая страница будет иметь свой
(
), собственный контент содержание но могут быть ссылки и на другие страницы Разве это не легкий
-
?
,
?
способ организации веб сайтов А что если вы могли бы сделать то же самое для своих личных данных
LifeHack
См статью под названием "
Wikify Your Life: How to Organize Everything
" с прекрасными
, примерами того как вы можете это сделать
,
Wiki?
Но значит ли это что нам потребуется специализированное ПО
Что если вы могли бы сделать то же
, самое в простом текстовом редакторефайлов использовав Vim?
Давайте разберемся
Установка Viki
:
$vimfiles
/.vim Linux/Mac, C:/Documents and Settings/Примечание Каталог находится в в
user-name>/vimfiles Windows C:Users//vimfiles Windows Vista. в
и в
Смотри
:help vimfiles для дополнительной информации
Viki
:
Мы собираемся установить и связанные с ним модули
1.
Скачайте multvals.vim и сохраните как
$vimfiles/plugin/multvals.vim.
2.
Скачайте genutils.zip
(unzip) и разархивируйте этот файл в
$vimfiles .
3.
Скачайте tlib.vba.gz
, откройте его в Vim и запустите
:so %
4.
Скачайте
Viki.vba
Откройте ваш файл vimrc и установите следующие инструкции для Viki.vba (для
получения болееподробной информации оvimrc используйте
:help vimrc-intro
)
set nocompatible filetype plugin indent on syntax on
Откройте viki.vba вVim и запустите
:so %.
Начало работы
1.
(GUI)
Откроем графическую версию Vim
2.
:e test.txt
3.
:set filetype=viki
4.
:
Наберем следующий текст
[[http://deplate.sourceforge.net/Markup.html][Viki syntax]]
5.
:w
6.
Установим курсорна этот текст и нажмем ctrl+enter
, или можно иначе нажать
\vf
7.
-
,
Вы должны увидеть открытый веб браузер с загруженной страничкой Аналогично вы можете вписать
(
) —
.doc
.pdf любое имя файла с правильным путем это может быть файл или файл и затем вы можете нажать ctrl+enter
Word
Acrobat Reader,
!
для открытия файла в программах или в соответственно
,
Идея в том что вы можете использовать простые текстовые файлы для хранения всех ваших мыслей
, вместе и вы можете по ctrl+enter перейти ко всему этому
,
,
,
Теперь обратите внимание что мы должны были ввести парные квадратные скобки чтобы определить
,
, ссылку и слова которые описывают связь Это основной синтаксис языка разметки который мы будем изучать далее
Язык разметки
Страница
Viki синтаксиса
(
-
)
,
,
Viki только что открытой в веб браузере объясняет как написать текст чтобы
,
'wiki'
Viki - подсвечивала часть вашего текста а также как сделать связь между страницами и писать ориентированные комментарии
,
Изучение основ синтаксиса подсветки полезно поскольку вы можете визуально видеть части вашего
,
'* List of things to do',
, текстового файла Например используйте чтобы сделать заголовок а затем
,
:
используйте тире чтобы создать список
* List of things to do
- Finish the blog post on Brahmagiri trek
- Fix footer bug on IONLAB website
- Buy some blank CDs
- Get motorbike serviced
Отключение CamelCase
: CamelCase —







Примечание это написание длинных слов или предложений с чередованием нижнего



.
иверхнегорегистров букв
CamelCase
Написание может создавать wiki
-
Viki,
,
ссылки в но лично мне это не нравится Я предпочитаю
, чтобы допускались только явные ссылки такие как [[CamelCase]],
, чтобы избежать ситуаций когда я
, camel case,
, действительно использовал имя которое использует но я не хочу чтобы это было ссылкой
(
,
"JavaScript"). camel-case например слово
Для отключения синтаксиса добавьте следующую строку в файл vimrc (

):
объяснения в разделеоплагинах let g:vikiNameTypes = "sSeuix"
Getting Things Done
'viki'
"Getting Things Done".
Одной из главных причин создания моей является поддержка системы
Getting Things Done ("GTD")
,
(David Allen), эта система разрабатываемая Дэвидом Алленом которая
(
помогает управлять вашим хламом 'stuff' —
,
,
,
,
материал хлам чепуха штука штуковина) — это может быть
,
, что угодно от ваших карьерных планов до списка хозяйственных работ которые вам нужно сделать
GTD сегодня Хорошеевведение в может быть найдено на bnet.com
David Allen's:
Из книги

"
Бери все из своей головы Принимай решения о необходимых действиях относительно очередной
,
,
, задачи тогда когда она появляется а не тогда когда она уже готова взорваться Разбивайте напоминания о ваших проектах и дальнейших действиях по соответствующим категориям Держите
,
,
, систему актуальной полной и достаточно обозримой доверяйте своему интуитивному выбору в
,
(
)".
плане того что вы обычно делаете и не делаете
GTD
Система в основном заключается в организации вашей информации в виде определенных
/
:
страниц папок
1.
Корзина
2.
Список проектов
3.
Дальнейшие действия
4.
Календарь
5.
-
/
Когда нибудь может быть
6.
Справочный материал
7.
В ожидании viki,
,
:
Я создал чтобы использовать эту систему используя следующий метод
1.
,
(StartPage)
Во первых создайте Начальную страницу которая действительно будет стартовой к вашей
(
viki).
личной системы которую называют просто ваш
2. viki:
Затем создайте список основных разделов вашей
* Getting Things Done
1. [[Collect][In Basket]]
2. [[Project][Projects List]]
3. [[NextActions][Next Actions]]
4. [[Calendar]]
5. [[SomedayMaybe][Someday/Maybe]]
6. [[Reference][Reference Material]]
7. [[Waiting][Waiting For]]
4.
,
,
,
,
[[Reference.Career]],
Аналогично перейдите глубже на сколько вам нужно например создайте чтобы
, [[Project.TopSecret]], записать ваши карьерные планы и чтобы собраться с мыслями о своем следующем
, проекте и так далее
5.
,
-
,
[[Collect]],
,
Всегда когда вы хотите что то записать используйте страницу а затем планируйте рассматривайте и только после делайте физические усилия
6.
,
,
,
Пройдет некоторое время пока вы привыкнете использовать эту систему но после вам будет удобно вы
,
,
, , сможете достичь ясности ума уверенности что вы контролируете все аспекты вашей жизни и самое
,
,
, главное чувство направления пониманиетого каковы самые важные вещи в вашей жизни
,
,
!
Обратите внимание что мы управляем всей системой используя только простой текст
Итоги
,
Мы увидели как Vim может помочь нам в создании системы управлении личной информацией Это
,
, потрясающе нам не нужно сложных программ для такой системы только обычные текстовые файлы и Vim
все сделает
Abhijit Nadgouda's
,
Смотри статью о том
Vim wiki как использовать как персональную для альтернативного пути достижения того же с помощью встроенных функций Vim.
Внешние ссылки
http://www.lifehack.org/articles/lifehack/wikify-your-life-how-to-organize-everything. html http://www.vim.org/scripts/script.php?script_id=171 http://www.vim.org/scripts/script.php?script_id=197 http://www.vim.org/scripts/script. php?script_id=861 http://deplate.sourceforge. net/ Markup. html http://www.bnet.com/2403-13074_23-52958. html http://ifacethoughts.net/2008/05/02/vim-as-a-personal-wiki/
Vim :
Сценарии

Введение
-
,
,
Если вы хотите сделать какое то ПО удобным для себя скорее всего вы будете менять различные
,
, настройки в программном обеспечении в соответствии с вашим вкусом и потребностями Что делать если
?
,
-
: «
- вы захотите большего Например выполнить какие то действия в зависимости от уловия Если такая то
GUI,
,
,
»? версия то использовать эту цветовую схему а если версия другая то другую цветовую схему Для "
".
,
,
, этого нужны сценарии Сценарии в основном подразумевают использование языка с помощью которого
«
».
можно указать условия и действия и связать ихв сценарии
Есть два метода использования скриптов в Vim — использовать встроенный в Vim
, скриптовый язык или
,
Python
Perl, использовать полноценный язык программирования такой как или которые имеют доступ к внутренним модулям Vim (
нужно чтобы Vim
).
был скомпилирован с этими опциями
В этой главе потребуется некоторое знание основ программирования Если у вас нет опыта
,
, программирования вы все равно поймете хотя изложение покажется слишком кратким Если вы хотите
,
,
- научиться программированию пожалуйста обратитесь к моей другой бесплатной книге
A Byte of Python
Vim -
Есть два способа создания многоразовой функциональности в использование макросов и написание сценариев
Макросы
,
Используя макрос вы можете записать последовательность команди затем повторять их в различных ситуациях
,
-
:
Например пусть вы имеете какой то текст наподобиеэтого tansen is the singer daswant is the painter todarmal is the financial wizard abul fazl is the historian birbal is the wazir
Здесь есть многочего исправлять
1.
Изменить первый символ предложения в верхний регистр
2.
'is'
'was'.
Изменить на
3.
'the'
'a'.
Изменить на
4.
"in Akbar's court."
Завершить предложениес
,
Один из способов заключается в использовании серии командзамены типа
:s/^\\w/\\u\\0/,
4
но это потребует
,
, команды замены и будет не очень хорошо если команда замены изменит части текста которые мы не хотим менять
Эффективней было бы использовать макросы.
1.
:
Установите ваш курсорна первом символепервой строки tansen is the singer
2.
Наберите qa в нормальном режиме для начала записи макроса с именем a
3.
Наберите gUl для переводапервогосимвола в верхний регистр
4.
Наберите w
для переходак следующему слову
5.
Наберите cw для замены слова
6.
Наберите was
7.
Нажмите

8.
Наберите w
для переходу к следующему слову
9.
Наберите cw для замены слова
10.
Наберите a
11.
Нажмите

12.
Наберите
A
для вставки текста в конецстроки
13.
Наберите in Akbar's court
14.
Нажмите

15.
Наберите q
для завершения записи макроса
,
,
-
Это выглядит как длительная процедура но иногдаэто гораздолегче чем создать какие то сложные
!
команды замены
,
:
В концепроцедуры строка должна выглядеть следующим образом

Tansen was a singer in Akbar's court.
,
Великолепно Теперь давайте применим это к другим строкам Просто переместите курсор на первый
@a.
,
:
символ второй строки и нажмите
Вуаля строка должна изменится на следующее
Daswant was a painter in Akbar's court.
,
Это свидетельствует о том что макросы могут записывать сложные операции и могут легко повторять их
Это помогает пользователю повторять сложные редактирования в нескольких местах Это один из видов
, повторяющихся манипуляций которые можно сделать над текстом Далее мы увидим более формальные способы управления текстом
:
,
,
Примечание Если вы хотите просто повторить последнее действие а не последовательность действий нет
, необходимости использовать макросы просто нажмите
(
).
клавишу с точкой
Основы написания скриптов
Vim
, имеет встроенный скриптовый язык используя который вы можете написать свои собственные скрипты
,
"do", для принятия решений исполнять и управлять текстом
Действия
,
Как вы измените тему то есть используемый Vim
?
: цвет Просто выполните
:colorscheme desert
'desert',
,
,
Здесь я использую цветовую тему которая по случаю моя любимая Вы можете увидеть другие
, доступные темы набрав
:colorscheme
и затем нажав клавишу для переключения доступных тем
,
,
?
Что делать если вы хотели узнать сколько символов в текущей строке
:echo strlen(getline("."))
'
Обратите внимание на имена strlen
' '
и getline
'.
("
Это функции functions
").
-
Функции это части
,
,
,
скриптов уже написанные и с именами чтобы мы могли использовать их снова и снова Например функция getline
,
, . (
) извлекает строку а мы указываем какие строки извлекать точка означает текущую строку
,
Мы передаем результат возвращаемый функцией getline,
strlen, в функцию которая подсчитывает
,
, количество символов в тексте а затем мы передаем результат возвращаемый функцией strlen,
команде
:echo
,
, которая просто выводит результат Обратите внимание как информация передается в этой команде strlen(getline("."))
,
Строка называется выражением Мы можем сохранять результаты такого выражения
,
, —
, используя переменные Переменные делают то что следует из их названия это имена указывающие на
,
,
, значения и значением может быть что угодно то есть оно может меняться Например мы можем сохранить значениедлины строки в переменной len:
:let len = strlen(getline("."))
:echo "We have" len "characters in this line."
,
:
Когдавы запустите кодиз второй строки этоготекста вы получите следующий результат
We have 46 characters in this line.
,
,
Обратите внимание мы можем использовать переменную в другом выражении Возможности которые вы
,
, получаете с помощью переменных выражений и команд поистине безграничны
Vim
,
$ различает разные типы переменных с помощью префиксов таких как для переменных среды
, &
, @
:
окружения для опций и для регистров
:echo $HOME
:echo &
filetype
:echo @a
Смотри
:help function-list
,
гдеуказан большой список доступных функций
:
Вы сами можете создать функцию следующим образом
:function
CurrentLineLength()
:
let len = strlen(getline("."))
:
return len

:endfunction
:
Теперь позиционируйте ваш курсорна любой строке и выполните следующую команду
:echo CurrentLineLength()
Вы должны увидеть напечатанную цифру Имена функций должны начинаться с символов в верхнем
(
).
, регистре с заглавной буквы Это чтобы различать встроенные функции которые начинаются с символа в
,
, нижнем регистре и определяемые пользователем функции которые начинаются с заглавных букв
("call")
,
,
Если вы хотите просто вызвать функцию для запуска но не отображать её вывод вы можете использовать
:call CurrentLineLength()



Поделитесь с Вашими друзьями:
1   2   3   4   5   6


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал