Вим продължава

Довършване на думи

Докато изучаването на Vim може да изглежда като трудна задача в началото, бъдете сигурни, че научаването да го използвате ще ви спести много време в бъдеще. Един от начините, по които Vim може да ви помогне да спестите време, е довършването на думи. Тази функция на Vim често се използва от разработчици и системни администратори при редактиране на програмни изходни кодове или конфигурационни файлове.

Автоматичното довършване работи по следния начин. Когато пишете дълга дума, която вече се появява някъде в текста, натиснетеCtrl+p илиCtrl+n, докато пишете думата. Например, вече имате думата „търсене“ в текста си. Сега започнете да пишете тази дума някъде в текста, като същевременно пишете само първите букви, например "море", и натиснетеCtrl+p. Vim автоматично ще завърши думата "търсене" или ще предложи варианти на думи, започващи с "море", ако има такива.

Ако има няколко опции за довършване на дума, след натискане наCtrl+p можете да продължите да въвеждате думата, като по този начин стесните обхвата от опции за дума, предлагани от Vim. Или можете просто да изберете желаната дума от списъка с помощта на клавишите със стрелки и след това да натиснетеTab. Ако Vim не намери нито една съответстваща дума в документа, ще получите съобщение „моделът не е намерен“.

Каква е разликата между командитеCtrl+p иCtrl+n ? Фактът, че първият търси думи в обратна посока, спрямо текущия, а вторият - в посока напред. В много случаи хората не правят голяма разлика между тези команди.

Съкращения

Представете си, че редактирате някакъв текст и той често съдържа същата дълга дума, която вече ви е писнало да пишете. Можеда бъде нечие фамилно име или името на фирма. Така че, ако не искате да пишете "ReallyLongWord" през цялото време, просто го съкратете в командния режим:

Първият аргумент на командата:ab е самото съкращение, а вторият аргумент е думата, до която ще бъде разширено съкращението. Сега, ако въведете "rlw", докато пишете, Vim автоматично ще го замени с "ReallyLongWord". Просто, нали?

Оценявате ли възможностите за използване на съкращения? Но какво ще стане, ако трябва да изпълните последователност от определени команди чрез натискане на горещ клавиш или няколко клавиша? Картографирането ще ви помогне тук.

Прост пример. Vim може да подчертае резултатите от търсенето. Тази функция обикновено е деактивирана по подразбиране. Ако го направиш

nmap :повикване ToggleHLSearch()

Този ред конфигурира съпоставянето на комбинациятаCtrl+n за активиране/деактивиране на функцията за осветяване на резултатите от търсенето. Първо се „натиска“ клавишътEscape, за да се превключи в команден режим, след това се дава командата :call ToggleHLSearch () и се „натиска“ връщането на каретката, тоестEnter.

За да сте сигурни, че съпоставянията и съкращенията, които сте конфигурирали, няма да изчезнат, когато Vim се затвори, трябва да ги добавите към файла.vimrc, намиращ се във вашата домашна директория.

Овладяване на интерфейса на Vim

Първоначално не е очевидно, но в една сесия на Vim е възможно да редактирате няколко файла едновременно. Това става с помощта на т.нар. "прозорци" или с помощта на сравнително нова функция на Vim, добавена в 7-ма версия - раздели.

Нека първо да разгледаме прозорците. Когато отворите Vim, за да редактирате файл, ще видите един прозорец със съдържанието на файла. Нека си представим, че редактирате много голям файл и трябва да го редактирате на две места паралелно. дайтекоманда (не забравяйте да натиснетеCtrl+Esc, за да превключите в команден режим)

и ще видите един и същи файл в два различни прозореца.

Добре, но сега как да се върна към предишния прозорец? Много просто. Влезте в командния режим, натиснетеCtrl+w и използвайте клавишите със стрелки или клавишите за навигация (h, j, k, l ), за да изберете прозореца, към който искате да превключите спрямо текущия прозорец. Да приемем, че вашата Vim сесия е разделена хоризонтално на два прозореца. С помощта на командата

ще преминете към прозореца над активния, докато командата

ще ви отведе до прозореца по-долу. Повтарянето наCtrl+w два пъти ще ви превключи към следващия прозорец.

В допълнение към превключването между прозорците, можете да местите самите прозорци. Екип

завърта прозорците по часовниковата стрелка и командата

завърта прозорците обратно на часовниковата стрелка.

Използването на няколко прозореца за работа с един и същи файл е сравнително рядко. Това, което се използва много по-често, е разделянето на сесията на прозорци при редактиране на множество файлове. Нека си представим, че искате да отворите друг файл във втория прозорец. Просто предайте пътя до желания файл като параметър на командата:split. Например:

Какво става, ако трябва да се върнете към сесия на Vim с един прозорец? За да направите това, просто трябва да затворите ненужните прозорци по традиционния начин (с помощта на командите:q,:!q или:wq ) или докато сте в прозореца, който искате да затворите, дайте командата

В случая с последната команда Vim няма да ви позволи да затворите модифицирания, но незаписан файл, което е логично.

Нека обобщим списъка с основни команди, използвани при работа с прозорци във Vim.

  • :split илиCtrl+w s - добавя хоризонтален прозорец към сесията на Vim
  • :vsplit илиCtrl+w v - добавя вертикален прозорец към сесията на Vim
  • :split filename - добавя хоризонтален прозорец към сесията на Vim и зарежда името на файла в него
  • :vsplit filename - добавя вертикален прозорец към сесията на Vim и зарежда името на файла в него
  • Ctrl+w h - превключва към левия прозорец, спрямо текущия
  • Ctrl+w l - превключва към десния прозорец, спрямо текущия
  • Ctrl+w j - превключва към долния прозорец, спрямо текущия
  • Ctrl+w k - превключва към горния прозорец, спрямо текущия
  • Ctrl+wCtrl+w - превключва към следващия прозорец
  • Ctrl+w r - премества прозорците по часовниковата стрелка
  • Ctrl+w R - премества прозорците обратно на часовниковата стрелка
  • Ctrl+w c - затваря текущия прозорец

След появата на раздели в уеб браузърите, потребителите са свикнали много с този механизъм и го използват активно. Наистина идеята е страхотна. Така че защо да не ги използвате във Vim? Ако често работите с няколко файла едновременно и не е необходимо да ги виждате всички едновременно на един екран, тогава използването на раздели е това, от което се нуждаете.

За да стартирате Vim с няколко отворени файла в различни раздели, стартирайте го със следната команда:

Ако вече имате отворена сесия на Vim, можете да заредите файла (или да създадете нов) в нов раздел с командата:

Ако не посочите име на файл, ще се отвори раздел, който не е свързан с името на файла и ще трябва да го посочите при записване.

Превключването между отметките също е много лесно. Командатаgt ще ви превключи към следващия раздел, докато командатаgT ще ви превключи къмпредишния.

Има няколко начина за затваряне на раздели. Първият начин е същото „традиционно“ затваряне с команди:q,:!q или:wq. Вторият начин е да използвате командата за затваряне на текущия раздел:

Както при Windows, тази команда ще ви попречи да затворите раздел, ако файлът в него е бил променен, но не е запазен. Нека обобщим списъка с команди за работа с раздели:

  • vim -p filename1 filename2 - стартира Vim и отваря (или създава нови) файлове filename1 и filename2 в два раздела
  • :tabnew - отваря празен раздел
  • :tabnew filename - отваря нов раздел и зарежда (създава нов) файл име на файл в него
  • gt - превключване към следващия раздел
  • gT - превключване към предишния раздел
  • :tabc - ще затвори текущия раздел

Заключение

Разбира се, способността на Vim да работи с раздели и прозорци е много по-богата. Можете да използвате командата:help, за да получите необходимата информация.