Vim: відмінності між версіями

Вилучено вміст Додано вміст
Think4web (обговорення | внесок)
мНемає опису редагування
Think4web (обговорення | внесок)
Немає опису редагування
Рядок 1:
'''[[:w:Vim|Vim]]''' (скор. від Vi Improved, вимовляється Вім) – текстовий редактор, створений на основі старішого vi. Нині це один з найпотужніших текстових редакторів з повною свободою настройки та автоматизації, і створених завдяки цьому розширень і надбудов.
 
А найголовніше - все в ньому спрямовано на те, щоб збільшити швидкість редагування файлів. Починаючи від того, що клавіша гортання тексту вниз (а це найчастіша дія при читанні) {{keypress|J}} знаходиться прямо під вказівним пальцем, і закінчуючи тим, що монотонні повторювані дії можна робити за секунди, записавши послідовність команд в макрос. Звісно ціна цього - доволі незвичний інтерфейс. Хто б міг подумати, що клавіша {{keypress|l}} переміщує курсор вправо, а не {{keypress|leftLeft}}. Та до цього можна звикнути за кілька днів, а після цього все життя мучитись, коли доводитиметься користуватись чимось менш зручним.
 
Перед тим як почати - маленька історія:
Рядок 24:
=== Переміщення по файлу ===
 
Найчастіше у vi використовуються клавіші переміщення {{keypress|h}}, {{keypress|j}}, {{keypress|k}}. {{keypress|l}} або стрілки вліво, вниз, вверх, вправо. Можна використовувати швидкі клавіші:
* {{keypress|Ctrl}} + {{keypress|f}} — на сторінку (екран) вниз
* {{keypress|Ctrl}} + {{keypress|b}} — на сторінку (екран) вгору
Рядок 30:
* {{keypress|Ctrl}} + {{keypress|u}} — на півсторінки (екрана) вгору
* {{keypress|Ctrl}} + {{keypress|y}} — на строку вверх, без змінення положення курсора
* <code>{{keypress|Ctrl}} + {{keypress|e}}</code> — на строку вниз, без змінення положення курсора
* {{keypress|0}} («нуль») — у початок поточного рядку;
* {{keypress|^}} — у початок поточного рядку (до першого непробільного символу);
Рядок 41:
* {{keypress|{}} — абзац вгору
* {{keypress|g}} + {{keypress|g}} — перейти на початок файлу
* {{keypress|<nowiki>''</nowiki>G}} — доперейти місцяу виконаннякінець командифайлу
* <code><number>G</code> — перейти на конкретний рядок <number>
* {{keypress|/}} + <text> + {{keypress|CR}} — перейти до <text>
* {{keypress|?}} + <text> + {{keypress|CR}} — те ж саме, але шукати назад
* {{keypress|n}} — повторити пошук
* {{keypress|N}} — повторити пошук назад
* {{keypress|[}} + {{keypress|[}} — в початок функції
* {{keypress|<nowiki>''</nowiki>}} — до місця виконання команди <code>[[</code>
 
=== Переміщення по екрану ===
Змінення положення екрана без змінення положення курсору.
* {{keypress|<code>z}} + {{keypress|-}}</code> — змістити сторінку так щоб рядок з курсором опинився внизу.
* {{keypress|<code>z}} + {{keypress|Enter}}</code> — змістити сторінку так щоб рядок з курсором опинився зверху
* {{keypress|<code>z}} + {{keypress|.}}</code> або {{keypress|z}} + {{keypress|z}}<code>zz</code> — змістити сторінку так щоб рядок з курсором опинився посередині
 
Переміщення у межах екрану
Рядок 55 ⟶ 62:
 
=== Редагування файлу ===
Ці команди переводять редактор Vim у режим вводу. Команди економлять час на переміщення курсору або переводять його на новий рядок. У командах вводу тексту можуть застосовуватись числові аргументи (за виключенням <code>O</code> та <code>o</code>). Наприклад, команда <code>20iПривіт</code>{{keypress|ESC}} вставляє 20 слів "Привіт".
 
* <code>i</code> — перейти у режим вводу з поточної позиції
* <code>a</code> — перейти у режим вводу після курсору
* <code>I</code> — переміститися на початок рядку та перейти у режим вводу
* <code>А</code> — переміститися у кінець рядку та перейти у режим вводу
* <code>o</code> — перейти у режим вводу з нового рядку під курсором
* <code>O</code> — перейти у режим вводу з нового рядку над курсором
* <code>s</code> — заміняє вказану кількість символів (видаляє вказану кількість символів та переходить у режим вводу). На відміну від команди <code>с</code> яка може видалити шматок тексту не менше слова (<code>cw</code>), командою <code>s</code> можна видалити будь яку кількість символів. Наприклад <code>4s</code> видалить чотири символи з того який заходиться під курсором. Ця команда використовується для заміни одного або кількох символів на інші символи.
* <code>S</code> - видаляє увесь поточний рядок і переходить у режим вводу. Число перед командою вказує скільки треба видалити рядків починаючи з поточного. Наприклад <code>4S</code> видалить чотири рядка разом з поточним.
* <code>R</code> — перейти у режим вводу з заміною тексту (аналог insert). Символи під курсором заміняються на символи що вводяться. Команда застосовується коли невідомо скільки потрібно буде змінити символів на інші (інакше можна було б використати команду <code>s</code> з вказанням кількості замінних символів, наприклад <code>7s</code>). При видалення введених символів повертаються ті які були до вводу команди. Такий режим зберігається до кінця рядку. При введенні нового рядку (по натисненню {{keypress|Enter}}), відбувається не перехід на інший рядок з тим же режимом заміни тексту, а створення нового рядку.
* <code>r</code> — заміняє один символ який знаходиться під курсором на той якій слідує за командою. При цьому не відбувається вихід з командного режиму (не треба натискати {{keypress|ESC}} після змінення тексту). Наприклад, команда <code>ry</code> - символ під курсором заміняє на "y". Числовий показник вказує скільки необхідно замінити символів на даний. Наприклад, <code>3ry</code> вставляє три символи "y".
 
Великі і малі літери відповідають різним командам тому треба бути уважним до регістру вводу і слідкувати чи випадково не натиснута клавіша {{keypress|CAPS LOCK}}.