Intereting Posts
Что такое хороший способ сохранить резервную копию электронных писем? Отключить DHCP без изменения «интерфейсов» Почему я получаю ошибку несоответствия хэш-суммы при попытке установить моно на debian команда sed unterminated `s / dev / sr0 (live DVD) превращается в / dev / sr1 при вставке периферийных устройств Возобновить сессию bash в новом TMUX или SCREEN? SSH Login не работает с помощью клавиши Без пароля? Удаление файла, который не имеет никаких разрешений и атрибутов Объединение двух файлов для монтирования файловой системы внутри них разделитель полей awk + count в csv и номер строки печати Куда идут файлы, если вы монтируете диск в папку, в которой уже есть файлы? Как запустить автозаполнение без клавиши табуляции? Как переименовать файлы со странными символами Где найти полный список связуемых readline-функций Vi-режима? Какой самый простой способ получить браузер с определенной (более старой) версией Webkit?

Является ли конвенция, что курсор «over» персонажа в нормальном режиме произвольный?

Это общий вопрос, возникающий при наблюдении неестественного поведения редактора с кем-то, не знакомым с vim :

  • ввод insert затем выход немедленно изменяет положение курсора
  • удаление и вставка (неправильное) [ ]word создает some[ ][ ]wordand the rest (пробелы, отмеченные как [ ] для ясности)

Предположим, что существует vim подобный редактор, который определяет соглашение о том, что текст всегда вставлен, вставлен, добавлен слева от позиции курсора, если не указано иное. Конечно, это должно было бы позволить наводить курсор на символ новой строки (и, например, разрешать его удаление).

Не сделает ли такой редактор плохо разработанным (например, несовместим с его собственными командами и движениями)?

Другими словами, vim условно или хорошо спроектировано?

Сато Кацура и Джулия Пеллетье уже поняли ваше замешательство в том, что у Vim множество команд и вариантов в вашем распоряжении. Я буду спорить о некоторых причинах, по которым режим вставки работает так, как он работает.

В терминале символ не всегда находится под курсором, например:

  • Курсор может быть выше EOL
  • Курсор может быть над новым символом строки, но новый символ строки – это символ, который не отображается в терминалах.

В Vim, даже в normal mode курсор может находиться в положении, которое не имеет символа. Чтобы увидеть это поведение, обратите внимание, что a и i выполняют одно и то же на пустой строке.

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

Также обратите внимание, что ввод / в normal-mode перемещает курсор временно на один символ вперед, это позволяет повторно искать новые совпадения одного и того же шаблона.

Я не понимаю вашу путаницу, но в vi есть очень строгие инструкции, которые vim расширяет:

 i: insert text before the cursor I: insert text at the beginning of the line a: append text after the cursor A: append text at the end of the line p: paste the buffer after the cursor P: paste the buffer before the cursor 

И список можно продолжать и продолжать.