Я знаю, як взагалі пересуватися в командному режимі, зокрема, перестрибуючи на рядки тощо. Але що це за команда перейти до кінця рядка, на якому я зараз перебуваю?
vimtutor
- це чудово. Напевно, вони про це не знали?
Я знаю, як взагалі пересуватися в командному режимі, зокрема, перестрибуючи на рядки тощо. Але що це за команда перейти до кінця рядка, на якому я зараз перебуваю?
vimtutor
- це чудово. Напевно, вони про це не знали?
Відповіді:
Просто клавіша $ (знак долара) . Ви можете використовувати Aдля переходу до кінця рядка та переходу в режим редагування (Додавання). Для переходу до останньої непорожній символ, ви можете натиснути gпотім _клавіші.
Протилежність Aє I(режим вставки в початок рядка), як в сторону. Якщо натиснути лише ^волю, ви кладете курсор на перший символ непробілу рядка.
g_
g_
оскільки вона не містить порожніх символів
Як багато людей сказали:
але також:
|
може приймати кількість, наприклад 3 | перейти до третьої колони.
g _ переходить до останнього непробільного символу.
g $ переходить до кінця рядка екрана (коли буферна лінія накладена на кілька рядків екрана)
b
переходить до початку попереднього слова, яке зовсім не те саме. Це приблизно рівнозначно $ge
.
_
і g_
для візуального / янькінгу, як $
і копіювати / видаляти символ нового рядка (LN).
g_
це єдиний спосіб, коли я знайшов фактичний кінець рядка.
$
переходить до кінця рядка навіть тоді, коли мене обгортають. Я не знаю, що немає налаштування, щоб коригувати її поведінку. Можливо, це було переоформлено вашим .vimrc до g$
?
Головне питання - кінець рядка
$ переходить до кінця рядка, залишається в командному режимі
A переходить до кінця рядка, переходить у режим вставки
І навпаки - початок рядка (технічно перший непробільний символ)
^ переходить до початку рядка, залишається в командному режимі
I (з великого регістру i) переходить до початку рядка, переходить у режим вставки
Далі - початок рядка (технічно перший стовпець незалежно від пробілу )
0 (нуль) переходить до початку рядка, залишається в командному режимі
0i (нуль, за яким йде мале i) переходить до початку рядка, переходить у режим вставки
Для тих, хто починає вивчати vi, ось гарне вступ до vi, перерахувавши поруч команди vi до типових рухів курсору GUI Editor Editor та клавіш швидкого доступу.
I
є, 0
але ^
обидва I
і ^
переходять до першого непробільного символу рядка, але 0
переходять до нуля стовпця (як випливає з назви).
0
? (перейдіть до першого символу (= стовпець 0) рядка та перейдіть до режиму вставки)
0i
. :-)
Якщо ваш поточний рядок обертається навколо видимого екрана на наступний рядок, ви можете використовувати g $, щоб дістатися до кінця рядка екрана .
gw
і gq
є командами, які переформатують текст. (див. :h gw
та :h gq
) Що, мабуть, трапилось, що ти зробив gw{motion}
і змінив текст, щоб рядки екрану відповідали фактичним рядкам.
Знак долара: $
У багатьох випадках, коли ми перебуваємо всередині рядка, ми укладаємо подвійну цитату, або під час написання заяви ми не хочемо натискати клавішу Escape і переходити до кінця цього рядка клавішею зі стрілкою та натискати крапкою з комою ( ;
) просто для закінчення лінія. Введіть наступний рядок у свій файл vimrc :
imap <C-l> <Esc>$a
Що говорить рядок? Він відображає Ctrl + l на ряд команд. Це еквівалентно натискання Esc(командний режим), $(кінець рядка), a(додавання) відразу.
vim
безумовно, дозволяє робити набагато більше за набагато менше часу з такими речами. @razorxpress, незначне коригування було б imap <C-l> <Esc>A
, що робить Ctrl + l еквівалентом натискання Esc
(вихідний режим вставки), а потім A
(додавання до кінця рядка).
inoremap <C-l> <C-o>A
Перевага клавіші 'End' полягає в тому, що вона працює як у звичайному, так і в режимі вставки.
'$' працює лише в звичайному / командному режимі, але він також працює в класичному редакторі vi (добре знати, коли vim недоступний).
Також відзначте різницю між рядком (або, можливо, фізичною лінією) та лінією екрана . Рядок закінчується символом End Of Line ("\ n"). Екранна лінія - те, що трапиться, відображатиметься як один рядок символів у терміналі чи на екрані. Вони розбиваються, якщо у вас фізичні лінії довші за ширину екрана, що дуже часто зустрічається при написанні електронних листів тощо.
Відмінність відображається і в командах кінцевих рядків.
Якщо ви завжди віддаєте перевагу останній поведінці, ви можете перезавантажити такі клавіші:
:noremap 0 g0
:noremap $ g$
g_
це останнє непробільне місце фізичної лінії. Як щодо екранного рядка?
Або є очевидна відповідь: натисніть Endклавішу, щоб перейти до кінця рядка.
Я не бачу гарячої клавіші для macbook для використання vim у стандартному терміналі. Сподіваюся, це комусь допоможе. Для користувачів macOS (тестовано на macbook pro 2018):
fn+ ← - перехід до початкового рядка
fn+ → - перехід до кінцевої лінії
fn+ ↑ - переміщення сторінки вгору
fn+ ↓ - переміщення сторінки вниз
fn+ g - перемістити курсор на початок документа
fn+ shift + g - перемістіть курсор до кінця документа
Для останніх двох команд колись потрібно натиснути двічі.
Мене звикли Home / End переводити мене до початку та кінця рядків у режимі Insert (з використання в Windows та, думаю, Linux), який Mac не підтримує. Це особливо дратує, оскільки коли я використовую vim на віддаленій системі, я також не можу це легко зробити. Після декількох болісних спроб та помилок я придумав ці .vimrc
рядки, які роблять те саме, але прив’язані до Ctrl-A для початку рядка та Ctrl-D для кінця рядка. (Чомусь Ctrl-E, я думаю, зарезервований, або, принаймні, я не міг знайти спосіб його прив’язати.) Насолоджуйтесь.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>
Тут є хороша діаграма для кодів символів управління ASCII і для інших:
http://www.physics.udel.edu/~watson/scen103/ascii.html
Ви також можете зробити Ctrl-V + Ctrl-, але це також не вкладається в подібні місця.