Когда я пытался использовать клавиши со стрелками в режиме вставки в редакторе vi
, в редакторе вставляются следующие символы:
Пожалуйста, помогите мне решить эту проблему.
Установите vim -> Это решит проблему.
sudo apt-get install vim
Есть много хороших уроков по vim / vi на youtube или в Интернете в целом. Для вашей проблемы см. Здесь
Затем продолжайте , как обычно, открывайте файлы :
vi desired-file
Если у вас еще нет файла .vimrc
в вашем домашнем каталоге, создайте его, используя это:
vim ~/.vimrc
Добавьте эту строку в начало файла:
set nocompatible
Сохраните файл, и это должно решить проблему для вас. :)
С vi
, при нажатии на меня Вы активируете команду для Вставки текста.
Эта команда позволяет Вам вставлять текст в свой файл.
И право, при нажатии:
Пока Вы не деактивируете эту команду.
Деактивировать команду в vi
: просто нажмите на Esc
И затем Вы возвратите нормальную эксплуатацию своих клавиш со стрелками:
К вашему сведению вот некоторые vi
команды:
Из этого источника.
:x
Возвратите выход vi, выписав измененный файл в файл, названный в исходном вызове
:wq
Возвратите выход vi, выписав измененный файл в файл, названный в исходном вызове
:q
Возвратите выход (или выход) vi
:q!
Возвратите выход vi даже при том, что последние изменения не были сохранены для этого вызова vi
↓ переместите курсор вниз одна строка
↓ переместите курсор одна строка
← переместитесь курсор оставил один символ
→ переместитесь курсор исправляют один символ
u
отмените то, что Вы просто сделали; простой переключатель
.
восстановите то, что Вы просто сделали
i
вставьте текст перед курсором до хита Esc
I
вставьте текст в начале текущей строки до хита Esc
a
добавьте текст после курсора до хита Esc
A
добавьте текст к концу текущей строки до хита Esc
o
откройтесь и помещенный текст в новой строке ниже текущей строки до хита Esc
O
откройтесь и помещенный текст в новой строке выше текущей строки до хита Esc
r
замените отдельный символ под курсором (никакой необходимый Esc)
cw
измените текущее слово с новым текстом, начиная с символа под курсором до хита Esc
x
удалите отдельный символ под курсором
Nx
удалите символы N, начиная с символа под курсором
dw
удалите начало отдельного слова с символа под курсором
C
изменение (замена) символы в текущей строке, до хита Esc
D
удалите остаток от строки, начиная с текущей позиции курсора
dd
удалите всю текущую строку
Ndd
удалите строки N, начав с текущей строки; например, 5dd удаляет 5 строк
yy
копия (рывок, сокращение) текущая строка в буфер
Nyy
копия (рывок, сокращение) следующие строки N, включая текущую строку, в буфер
p
вставьте строку (строки) в буфере в текст после текущей строки
0
(нулевой) курсор перемещения для запуска текущей строки (та с курсором)
$
переместите курсор в конец текущей строки
w
переместите курсор в начало следующего слова
b
положите обратно курсор к началу предыдущего слова
:0
Возвратитесь или 1G
переместите курсор в первую строку в файле
:n
Возвратитесь или nG
переместите курсор в строку n
:$
Возвратитесь или G
переместите курсор для длительности строки в файле
/string
ищите вперед возникновение строки в тексте
?string
ищите назад возникновение строки в тексте
n
переместитесь в следующее возникновение строки поиска
N
переместитесь в следующее возникновение строки поиска в противоположном направлении
Чтобы отключить печать букв при нажатии стрелок в режиме редактирования, вы можете выполнить следующие действия:
vi $HOME/.exrc
(создать файл, если он не существует), а затем добавить в него строку set nocompatible
и сохранить.
В редакторе vi есть три режима:
Когда вы открываете файл, вы находитесь в режиме по умолчанию. Теперь, если вы хотите перейти к определенной позиции в вашем тексте, просто используйте клавиши со стрелками или используйте h kbd>, j kbd>, k kbd>, l kbd> ключи. Обратите внимание, что это будет работать, только если вы не нажали i kbd> (или любую другую команду ввода в режиме ввода, например a kbd>, A kbd>, I KBD>).
Причина «B» может быть в том, что клавиши со стрелками в режиме ввода не функционируют как клавиши со стрелками, поэтому просто нажмите Esc kbd>, чтобы в любой момент перейти в режим по умолчанию. Когда для перехода в режим ввода нажмите i kbd> или a kbd>, а для навигации просто нажмите клавишу i kbd> и используйте клавиши со стрелками или h kbd>, j kbd>, k kbd>, l kbd>.
У меня была точно такая же проблема, но не только на моей локальной машине, но и на соединениях через замазку на машине sles в виртуальной машине Win7 через приемник citrix. Как локальный, так и удаленный хосты показывают, что после переустановки Ubuntu возникла точно такая же проблема.
Узнав, что
$ localectl list-keymaps
Couldn't find any console keymaps.
вызывает это странное поведение VI, я установил пакет console-data, который решает проблему!
sudo apt-get install console-data
Проверка альтернатив: /etc/alternatives/vi
& rightarrow; /usr/bin/vim.tiny
Таким образом, vi
равно vim.tiny
и использует /etc/vim/vimrc.tiny
.
И в vimrc.tiny
вы найдете следующую строку:
set compatible
Который является почти единственным в этом файле. Обратите внимание, что в /etc/vim/vimrc
он использует nocompatible
.
Так что либо установите vim, либо измените файл vimrc.tiny
, либо создайте свой собственный ~/.vimrc
, который должен содержать строку:
set nocompatible
Примечание:
В других постах есть хорошая информация, но ни в одном из постов не было попыток объяснить , почему такое поведение произошло. Многие люди будут сталкиваться с этим в будущем. Кроме того, не могли бы вы пометить этот вопрос как решенный, поскольку вам наверняка помогли какие-либо из предыдущих постов?
Вот объяснение :
Vi [ 1139] - редактор, который существует уже давно, его корни уходят в системы Unix. Это хороший инструмент, но он был повторен, и теперь он стал лучше. Vim был написан позже и является этой итерацией. Люди обычно называют vi «vim-minimal», а vim - «улучшенная» версия vi. Вы можете думать об этом так: vi - это ядро, а vim расширяет его.
Вероятно, как вы обнаружили поведение :
Чтобы вы обнаружили эту проблему, вы нажали « i », чтобы войти в вставку , а затем с помощью клавиш со стрелками перемещаться по правильной линии и редактировать точку. Это то, что вызвало вашу неожиданную проблему с символами.
Решение 1 или 2
1) vi someFile
При использовании vi сначала перейдите к точке редактирования, затем войдите в режим вставки. [тысяча сто двадцать семь]
2) vim someFile
Просто используйте vim с самого начала.
Я не могу выделить достаточно, чтобы прочитать руководство (справочные страницы) или использовать -h для помощи. Как только вы подстроитесь под шаблоны в оболочке, man-страницы станут вашим лучшим другом. Пример: man vi
или man vim
Проверить, что Vim установлен .
Откройте окно консоли и выполните:
dpkg --list | grep vim
Если вы получили что-то похожее на это, вы можете просто начать использовать vim.
~ $ dpkg --list | grep vim
ii vim 2:7.4.052-1ubuntu3 amd64 Vi IMproved - enhanced vi editor
ii vim-common 2:7.4.052-1ubuntu3 amd64 Vi IMproved - Common files
ii vim-runtime 2:7.4.052-1ubuntu3 all Vi IMproved - Runtime files
ii vim-tiny 2:7.4.052-1ubuntu3 amd64 Vi IMproved - enhanced vi editor - compact version
Если командная строка возвращается с пустым значением, vim is не устанавливается. Используйте приведенные ниже примеры для обновления ваших репозиториев, а затем установите vim.
sudo apt-get update
sudo apt-get install vim
Если вы не используете vi или vim только при поиске в Интернете, как что-то исправить, и случайно забыли набрать vim
, есть один способ исправить это в будущем. Я предупреждаю вас обратить внимание. Вы можете использовать псевдоним, чтобы перезаписать vi ссылкой на vim, чтобы независимо от того, что вы печатаете в нечастом будущем, вы получаете vim без этого "упс!" момент. Вы всегда можете удалить псевдоним позже.
Тип vim .bashrc
. Переместитесь вниз к пустой строке только с ~
(или с любой другой строкой, которая начинается с alias
(чтобы они были сгруппированы вместе), а затем нажмите клавишу i , чтобы войти в -insert- mode . В отдельной строке введите следующее:
alias vi='vim'
Нажмите Esc
, а затем введите :wq
. Теперь вам нужно перезагрузить файл. Введите source .bashrc
Любую другую оболочку, которая открывается после вас. Эти изменения автоматически загрузят файл .bashrc.
Традиционный редактор vi не распознает клавиши со стрелками (... в воздухе). Есть два решения:
Это также может быть связано с переменной TERM
; установите его, например, так:
export TERM=xterm
В некоторых системах опция nocompatible
недоступна или может не решить проблему, если плагин нарушает функциональность клавиши со стрелкой. Вот обходной путь ...
Измените файл .exrc
, включив в него следующие строки:
map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha
Или, если проблема существует только в обычном режиме, вы можете изменить значение на nmap
и пропустить следующее a
, следующим образом:
nmap! ^[OA ^[k
и т. д.
Вот комбинации клавиш, необходимые для их создания (показаны только первые):
map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka
Это выходит из режима редактирования, перемещается в нужном направлении и снова входит в режим редактирования. Это необходимо для преодоления Vi, считывающего escape-последовательность как последовательность литералов
Источник: https: //hea-www.harvard .edu / ~ тонкой / Технология / vi.html
Для VI создайте или отредактируйте файл "~ / .exrc" или VIM создайте или отредактируйте файл "~ / .vimrc", установите или добавьте в строку.
set nocompatible
На момент написания этой статьи есть похвалы по второму пункту с наибольшим количеством голосов, которые задаются вопросом, почему их запись не была принята. Причина в том, что существуют хосты, которые не позволяют устанавливать другие редакторы. Даже тогда vim иногда имеет одинаковые эффекты, поэтому из двух первых записей есть куча полезной информации. Однако я не могу комментировать, надеюсь, это проясняет причины, почему ни один из них не является 100% правильным в 100% случаев.
На этой машине мне пришлось make sure
, чтобы
set nocompatible
было last entry in ~/.vimrc
. Или, по крайней мере, одна из последних записей, в частности, больше не загружается плагин.
НТН
По какой-то причине Ubuntu пропустил инициализацию envvar HOME для пользователя root на моем новом 18.04 VPS. Если это так, vi не может найти файл .vimrc. Проблема не возникает для обычных пользователей (в /home/).
Чтобы проверить переменную:
echo $HOME
Если это приводит к пустой строке, переменная не установлена. Проблема исчезла после того, как
export HOME=/root
я переместил команду в файл /root/.bashrc (я не знаю, где это обычно устанавливается).