Разница между word и word vim

Обновлено: 01.07.2024

В следующих разделах объясняются следующие категории команд vi.

Перемещение по файлу

Изменение и замена текста

Отмена изменений в тексте

Проверка правописания

Форматирование выходного файла

Перемещение по файлу

В предыдущих разделах вы узнали, как создать, сохранить, распечатать и выйти из файла vi. Теперь, когда вы создали файл, вам нужно понять концепции, необходимые для навигации по нему. Откройте файл практики и попробуйте каждую из команд, описанных в этом разделе.

Перемещение курсора

При запуске vi курсор находится в верхнем левом углу экрана vi. В командном режиме вы можете перемещать курсор с помощью ряда клавиатурных команд. Для перемещения курсора в командном режиме можно использовать определенные буквенные клавиши, клавиши со стрелками, а также клавишу «Ввод», клавишу «Назад» (или «Удалить») и клавишу «Пробел».

Большинство команд vi чувствительны к регистру. Одна и та же команда, введенная строчными и прописными буквами, может иметь разные эффекты.

Перемещение с помощью клавиш со стрелками

Если на вашем компьютере есть клавиши со стрелками, попробуйте их прямо сейчас. Вы должны иметь возможность свободно перемещать курсор по экрану, используя комбинации клавиш со стрелками вверх, вниз, вправо и влево. Обратите внимание, что вы можете перемещать курсор только по уже существующему тексту или полям ввода.

Если вы используете vi с удаленного терминала, клавиши со стрелками могут работать неправильно. Поведение клавиши со стрелкой зависит от вашего эмулятора терминала. Если клавиши со стрелками не работают для вас, вы можете использовать следующие замены:

Чтобы переместиться влево, нажмите h .

Чтобы переместиться вправо, нажмите l .

Чтобы переместиться вниз, нажмите j .

Чтобы перейти вверх, нажмите k .

Перемещение одного слова

Нажимайте w ("слово"), чтобы перемещать курсор вправо по одному слову за раз.

Нажимайте b ("назад"), чтобы перемещать курсор влево на одно слово за раз.

Нажмите W или B, чтобы переместить курсор за соседний знак препинания к следующему или предыдущему пробелу.

Нажмите e («конец»), чтобы переместить курсор на последний символ текущего слова.

Переход к началу или концу строки

Нажмите ^, чтобы переместить курсор в начало текущей строки.

Нажмите $, чтобы переместить курсор в конец текущей строки.

Перейти на одну строку вниз

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

Движение влево

Нажмите клавишу Back Space, чтобы переместить курсор на один символ влево.

Вправо

Нажмите клавишу пробела, чтобы переместить курсор на один символ вправо.

Вверх

Нажмите H ("высокий"), чтобы переместить курсор в верхнюю часть экрана.

Переход к середине

Нажмите M ("посередине"), чтобы переместить курсор в середину экрана.

Движение вниз

Нажмите L ("низкий"), чтобы переместить курсор в нижнюю часть экрана.

Постраничный просмотр и прокрутка

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

Вы можете листать или прокручивать назад или вперед по файлу, экрану или половине экрана за раз. Чтобы опробовать эти команды в Paint , вы можете добавить текст, чтобы у вас был более длинный файл для работы.

Обратите внимание, что пейджинг и прокрутка принципиально разные. Прокрутка фактически прокручивает курсор вверх или вниз по тексту построчно, как если бы он был на бумажной прокрутке. Пейджинг перемещает курсор вверх или вниз по тексту на весь экран за раз. На быстрой системе вы можете не заметить разницы. Однако если вы работаете с удаленного терминала или в любой другой ситуации, когда ваша система работает медленнее, чем обычно, эта разница может стать болезненно очевидной.

На один экран вперед

Для прокрутки вперед (вниз) на один экран нажмите Ctrl-F. (Удерживая нажатой клавишу Control, нажмите клавишу F.) Курсор переместится в левый верхний угол нового экрана.

Прокрутить вперед на полэкрана

Чтобы прокрутить вперед на половину экрана, нажмите Ctrl-D.

На один экран назад

Чтобы прокрутить назад (то есть вверх) на один экран, нажмите Ctrl-B.

Прокрутка назад на полэкрана

Чтобы прокрутить назад на половину экрана, нажмите Ctrl-U.

Вставка текста

vi предоставляет множество команд для вставки текста. Этот раздел знакомит вас с наиболее полезными из этих команд. Обратите внимание, что каждая из этих команд переводит vi в режим ввода. Чтобы использовать любую из этих команд, вы должны сначала войти в командный режим. Не забудьте нажать Esc, чтобы убедиться, что вы находитесь в командном режиме.

Добавить

Введите a (добавить), чтобы вставить текст справа от курсора.Поэкспериментируйте, переместив курсор в любое место строки и набрав , а затем текст, который вы хотите добавить. Когда закончите, нажмите Esc.

Нажмите A, чтобы добавить текст в конец строки. Чтобы увидеть, как работает эта команда, поместите курсор в любом месте текстовой строки и нажмите A . Курсор перемещается в конец строки, где вы можете ввести свои дополнения. Когда закончите, нажмите Esc.

Вставить

Вставьте текст слева от курсора, набрав i в командном режиме.

Введите I, чтобы вставить текст в начале строки. Команда перемещает курсор из любой позиции в этой строке. Нажмите Esc, чтобы вернуться в командный режим после ввода нужного текста.

Открыть линию

Используйте эти команды, чтобы открывать новые строки выше или ниже текущей позиции курсора.

Нажмите o, чтобы открыть строку ниже текущей позиции курсора. Чтобы поэкспериментировать, введите o, а затем немного текста. Вы можете ввести несколько строк текста, если хотите. Когда закончите, нажмите Esc.

Нажмите O, чтобы открыть строку над текущей позицией курсора.

Изменение текста

Изменение текста подразумевает замену одного фрагмента текста другим. В vi есть несколько способов сделать это, в зависимости от обстоятельств.

Изменение слова

Чтобы заменить слово, поместите курсор в начало слова, которое нужно заменить. Введите cw , а затем новое слово. Чтобы закончить, нажмите клавишу ESC.

Чтобы изменить часть слова, поместите курсор на слово справа от части, которую нужно сохранить. Введите cw , введите исправление и нажмите клавишу ESC.

Изменение строки

Чтобы заменить строку, поместите курсор в любое место строки и введите cc . Строка исчезнет, ​​оставив пустую строку для вашего нового текста (который может быть любой длины). Нажмите Esc, чтобы закончить.

Подстановка символов

Чтобы заменить символ под курсором одним или несколькими символами, введите s , а затем новый текст. Нажмите Esc, чтобы вернуться в командный режим.

Замена одного символа

Используйте эту команду, чтобы заменить символ, выделенный курсором, другим символом. Поместите курсор на символ и введите r , а затем только один символ замены. После замены vi автоматически возвращается в командный режим (Esc нажимать не нужно).

Отмена изменений

Когда вы редактируете текст и вносите изменения в vi-файл, иногда вам может быть жаль, что вы ничего не изменили. Команды отмены vi позволяют вам создать резервную копию одной операции и продолжить с нее.

Отмена предыдущей команды

Если вы допустили ошибку в vi или просто передумали после завершения операции, вы можете отменить последнюю команду, нажав u сразу после команды. Вам не нужно нажимать Esc после ввода u . Нажав u во второй раз, вы отмените отмену.

Отмена изменений в строке

Нажмите U, чтобы отменить все изменения, внесенные в строку. Эта команда работает только в том случае, если вы не переместили курсор за пределы строки. Вам не нужно нажимать Esc после ввода U .

Удаление текста

Эти команды vi удаляют указанный символ, слово или строку. vi остается в командном режиме, поэтому любой последующей вставке текста должны предшествовать дополнительные команды для входа в режим ввода.

Удаление одного символа

Чтобы удалить один символ, поместите курсор на удаляемый символ и введите x .

Команда x также удаляет пробел, занимаемый символом: когда буква удаляется из середины слова, оставшиеся буквы закрываются, не оставляя пробела. Вы также можете удалить пробелы в строке с помощью команды x.

Чтобы удалить один символ перед курсором (слева от него), введите X (верхний регистр).

Удаление слова или части слова

Чтобы удалить слово, поместите курсор в начало слова и введите dw . Слово и место, которое оно занимало, удаляются.

Чтобы удалить часть слова, поместите курсор на слово справа от части, которую нужно сохранить. Введите dw, чтобы удалить оставшуюся часть слова.

Удаление строки

Чтобы удалить строку, поместите курсор в любое место строки и введите dd . Строка и место, которое она занимала, удаляются.

Копирование и перемещение текста — скопировать, удалить и вставить

Многие текстовые процессоры позволяют «копировать и вставлять» и «вырезать и вставлять» строки текста. Редактор vi также включает эти функции. Эквивалент команды «копировать и вставить» в командном режиме vi — «выдернуть и вставить». Эквивалентом «вырезать и вставить» является удаление и вставка.

Методы копирования или перемещения небольших блоков текста в vi включают использование комбинации команд yank, delete и put.

Копирование строк

Для копирования строки требуются две команды: yy или Y («скопировать») и либо p («поместить ниже»), либо P («поместить выше»). Обратите внимание, что Y делает то же самое, что и yy .

Чтобы восстановить одну строку, выполните следующие действия.

Поместите курсор в любом месте строки, которую вы хотите скопировать.

Переместите курсор на строку выше, где вы хотите поместить (скопировать) перетянутую строку.

Копия скопированной строки появляется в новой строке под курсором.

Чтобы поместить скопированную строку в новую строку над курсором, нажмите P .

Команда yy хорошо работает со счетчиком: например, чтобы извлечь 11 строк, введите 11yy . Одиннадцать строк, начиная с курсора, перетаскиваются, и vi указывает на это сообщением в нижней части экрана: перетянуто 11 строк .

Вы также можете использовать команды P или p сразу после любой из команд удаления, обсуждавшихся ранее. Это действие помещает удаленный текст выше или ниже курсора соответственно.

Используйте только команды перемещения курсора между переносом или удалением и размещением. Если вы удалите или скопируете какой-либо другой текст до того, как поместите новый текст на место, строки, которые вы скопировали или удалили, будут потеряны.

Перемещение линий

Для перемещения строк также требуются две команды: dd ("удалить") и либо p, либо P .

Чтобы переместиться на одну строку, поместите курсор в любое место строки и введите dd . Например, чтобы удалить 5 строк, введите 5dd .

Далее переместите курсор на строку выше, где вы хотите повторно вставить удаленную строку, и введите p . Это вставит текст на новую строку под курсором.

Кроме того, вы можете поместить удаленную строку над курсором, набрав P .

Использование счетчика для повторения команд

Многим командам vi может предшествовать коэффициент повторения (называемый счетчиком) — число, которое предшествует команде и указывает, сколько раз нужно повторить операцию.

Большинство команд в предыдущих разделах учитываются. Например, 3dd трижды повторяет команду удаления строки, тем самым удаляя три строки. 2dw удаляет два слова, а 4x удаляет четыре символа или пробела. Вы также можете использовать счетчики с командами для перемещения курсора, такими как 3w и 2Ctrl-F . В разделе «Сводка основных команд vi» каждая команда, требующая подсчета, обозначается «[счетчик]» перед именем команды.

Ввод точки ( . ) повторяет предыдущую команду изменения текста. Например, если вы только что удалили строку с помощью dd , вы можете переместить курсор на другую строку и удалить ее, просто набрав точку.


Правильно ли, что WORD — это что угодно до следующего пробела, а слово — это что угодно, пока первая буква не указана в 'iskeyword'?

Один связанный с этим вопрос: возможно ли расширить набор разделителей "пробелов"? Например, в моем коде LaTeX часто встречается что-то вроде

Нажатие W в начале строки приводит к прямому переходу к началу inline , но w останавливается на обратной косой черте, каждой скобке, запятой и в каждом начале слова. Поэтому мне нужно нажать w 5 раз, чтобы перейти к встроенному. Я бы хотел, чтобы он останавливался в начале usepackage , shortlabels , inline и enumitem .


слово – это набор словесных символов, но WORD – это как каждый отдельный символ, а не пробел.

это,семь,слов против этого,есть,одно,СЛОВО и,а,второе,СЛОВО .

отредактировано 4-7 слов, спасибо

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

Я бы хотел, чтобы он останавливался в начале usepackage , shortlabels , inline и enumitem .

Я не думаю, что это возможно из коробки. Добавление знаков препинания к ключевому слову будет означать, что \usepackage[shortlabels, будет считаться одним словом, и w не будет останавливаться на коротких метках .

Возможно, вам больше повезет, если вы воспользуетесь оператором f для перехода к знаку препинания, предшествующему слову. Например, если в начале строки f< будет переходить на < перед enumitem , что пропускает некоторое использование w. Вы также можете использовать навигационный плагин, такой как vim-sneak, но лично я использую f и w .

Не эксперт, но я думаю, что вы правы в том, что это невозможно сделать с помощью ключевого слова iskeyword.

Но, возможно, вы можете поэкспериментировать с /\ и сопоставить его где-нибудь удобно. Это просто поиск, который находит следующее начало слова. Сделав это один раз, вы можете просто пойти nnnn . См.: помощь /\

Также спасибо за публикацию этого вопроса, ОП. Меня раздражает, что foo-bar и foo_bar ведут себя по-разному, и мне никогда не приходило в голову, что я могу попытаться изменить это поведение! Я могу просто сделать :set iskeyword+=- или :set iskeyword-=_ . Пока не уверен, какой из них я предпочитаю.

Если курсор находится на u в usepackage, он перемещается на первый [ . Теперь, если я изменю это локально с помощью

Теперь использование w будет перемещаться к , после коротких меток, так как [ теперь является частью слов. В общем, не стоит возиться с этой опцией. Однако вы можете установить g:tex_isk, который переопределяет ключевое слово iskeyword, установленное файлом синтаксиса латекса локально.

Для вашего второго вопроса IMO, чтобы быстро перейти к символам алфавита, вероятно, лучше всего использовать параметр поиска с /\w\+, который ищет алфавит, а затем используйте n для перехода к следующему вхождению.

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

При входе в файл vi находится в командном режиме. Для ввода текста необходимо войти в режим вставки. Если вы находитесь в режиме вставки, войдите в командный режим, нажав клавишу escape, ,.

Чтобы вставить текст:

Команда Вставить текст
i перед курсором
a после курсора
A в конце строки
o открыть строку ниже текущей строки
O открыть строка над текущей строкой
r заменить текущий символ
R заменить символы до , перезаписать

Чтобы переместить курсор:

Для использования команд, перемещающих курсор, необходимо находиться в командном режиме. Каждой из этих команд может предшествовать коэффициент повторения.

Примеры:
8j переместит курсор на 8 строк вниз
3w переместит курсор на 3 слова вправо.

Command Перемещает курсор
ПРОБЕЛ, l (el) или стрелка вправо пробел вправо
h или стрелка влево пробел влево
j или стрелка вниз вниз на одну строку
k или стрелка вверх вверх на одну строку
w слово справа
b слово слева
$ конец строки
0 (ноль) начало строки
e конец слова справа
- начало предыдущей строки
) конец предложения
(< /td> начало предложения
> конец абзаца
< /td> начало абзаца

Чтобы удалить текст:

Команда d удаляет текст из рабочего буфера. Удаляемая сумма зависит от Коэффициента повторения и Единицы измерения, которую вы вводите после d. Если вы удалили по ошибке: дайте команду u (отменить) сразу после команды удаления.

Примеры: 3dd удалит 3 строки, начиная с текущей строки.
3dw или d3w удалит 3 слова

< tr>
Команда Действие
d0 удалить в начало строка
dw удалить до конца слова
d3w удалить до конца третьего слова
db удалить до начала слова
dW удалить до конца слова, разделенного пробелами
dB удалить до начала слова, разделенного пробелами
dd удалить текущую строку
5dd удалить 5 строк, начиная с текущей строки
dL удалить до последней строки на экране
dH удалить до конца первая строка на экране
d) удалить до конца предложения
d( удалить до начала предложения
x удалить текущий символ
nx удалить количество символов, указанное в n.
nX удалить n символов перед текущим символом

Просмотр различных частей рабочего буфера:

^Символ означает, что вы должны удерживать нажатой клавишу Control, нажимая указанную клавишу с символом.

Выдергивание (копирование) и вставка (вставка) текста:

Пример: 3yy вытянет (скопирует) 3 строки,
p поместит 3 только что извлеченных строки в строку под текущим курсором.

В следующем списке M – это единица измерения, перед которой можно указать коэффициент повторения n.

< td>поместить текст выше текущей строки
Command Effect
yM скопировать текст, указанный M
y3w выдернуть 3 слова
nyy вытянуть n строки
Y перенести в конец строки
P
p поместить текст ниже текущей строки

Изменение текста

Пример: cw позволяет заменить слово. Слово может быть заменено любым количеством слов. Остановите изменение, нажав Когда в командном режиме, если вы вводите / курсор переместится в нижнюю часть экрана. Следуйте за этим с выражением, и vi найдет следующее вхождение этого выражения в файле.Пример: /Bill найдет следующее вхождение Bill. Если за этим следует команда: n , будет найдено следующее вхождение Bill.


О нас

КОНТАКТЫ

ПРОБЛЕМА С ЭТОЙ ВЕБ-СТРАНИЦЕЙ?

Чтобы сообщить о другой проблеме, напишите по адресу msscwebhelp@marquette.edu .

Я изучаю Vim и не могу понять разницу между word и WORD .

Я получил следующее из руководства Vim.

Слово состоит из последовательности букв, цифр и знаков подчеркивания или последовательности других непустых символов, разделенных пробелами (пробелами, табуляциями и т. д.). Это можно изменить с помощью опции «iskeyword». Пустая строка также считается словом.

СЛОВО состоит из последовательности непустых символов, разделенных пробелом. Пустая строка также считается СЛОВОМ.

Мне кажется, слово и СЛОВО — это одно и то же. Оба они представляют собой последовательность непустых символов, разделенных пробелами. Пустая строка может считаться как словом, так и словом WORD .

Вопрос:
В чем между ними разница?
И почему/когда кто-то может использовать WORD вместо слова?

Я уже выполнял поиск в Google и SO, но их поисковая система интерпретирует WORD как просто слово, поэтому я как будто ищу Vim word vs word и, конечно же, не нахожу ничего полезного.

Согласно документации Vim ( :h 03.1 )

Слово заканчивается символом, не являющимся словом, например ".", "-" или ")".

СЛОВО заканчивается строго пробелом. Это может быть не слово в обычном смысле, поэтому в верхнем регистре.

Если ваш курсор находится на m (или выше)

слово будет означать «больше» (т. е. ограничено символом «)», не являющимся словом)

тогда как СЛОВО будет означать "больше"). (т.е. разделены только пробелами)

аналогично, если ваш курсор находится в точке p (особой)

  • слово будет означать "особый"
  • тогда как СЛОВО означает "особые/разделенные/слова"

Другой способ сказать это. Если вы кодируете и хотите перейти через строку, останавливающуюся на разделителях и строках, которые "() . [] , :" используйте w.

если вы хотите обойти их и просто перейти к словам, скажем, как в романе или рассказе, используйте W.

Для кодирования чаще всего используется маленькая буква w. Зависит от того, где вы находитесь в коде.

Читайте также: