点击箭头键可在vi编辑器中添加字符
当我在vi
编辑器中尝试在插入模式下使用箭头键时,编辑器中插入了以下字符:
- 为↓我得到B,
- 为↑我得到A,
- 为←我得到D,
- 因为→我得到C.
请帮我解决这个问题。
如果您的主目录中还没有.vimrc
文件,请使用以下命令创建一个:
vim ~/.vimrc
将此行添加到文件的顶部:
set nocompatible
保存文件,这应该为您解决问题。 🙂
安装vim – >这将解决问题。
sudo apt-get install vim
youtube或网络上有很多很好的vim / vi教程。 有关您的问题, 请参阅此处
然后像往常一样继续打开文件 :
vi desired-file
使用vi
,单击i时激活“ 插入文本”命令。
此命令允许您在文件中插入文本。
对,点击时:
- 在↑它会插入一个“A”,
- 在↓上会插入一个“B”,
- …
您必须停用此命令。
要在vi
停用命令:只需单击Esc即可
然后你将恢复正常使用箭头键:
- ↑上去,
- ↓下来,
- …
仅供参考,这里有一些vi
命令:
从这个来源 。
:x
返回 退出vi ,将修改后的文件写入原始调用中命名的文件
:wq
返回 退出vi ,将修改后的文件写入原始调用中命名的文件
:q
返回 退出(或退出)vi
:q!
即使此vi调用尚未保存最新更改,也请返回 退出vi
↓ 将光标向下移动一行
↓ 将光标向上移动一行
← 移动光标左侧一个字符
→ 将光标向右移动一个字符
u
撤消你刚刚做的事; 一个简单的切换
.
无论你做什么都重做
i
在光标前插入文本,直到Esc命中
I
在当前行的开头插入文本,直到Esc命中
在光标后附加文本,直到Esc命中
将文本追加到当前行的末尾,直到Esc命中
o
打开并将文本放在当前行下方的新行中,直到Esc命中
打开并将文本放在当前行上方的新行中,直到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
向后搜索 ?string
查找文本中字符串的出现
n
移动到下一个搜索字符串
N
向相反方向移动到下一个搜索字符串
要在编辑模式下按箭头禁用打印字母,您可以执行以下操作
vi $HOME/.exrc
(如果文件不存在则创建文件),然后添加与其不set nocompatible
行set nocompatible
并保存。
vi编辑器有三种模式:
- 命令模式
- 输入模式
- 默认模式。
当您打开文件时,您处于默认模式。 现在,如果您想要转到文本中的特定位置,只需使用箭头键或使用h , j , k , l键。 请注意,只有当您没有按下i (或任何其他输入模式输入命令,如a , A , I )时,这才会起作用。
“B”的原因可能是因为输入模式中的箭头键不起箭头键的作用,因此只需按Esc键即可进入默认模式。 何时切换到输入模式按i或a ,然后导航只需按i键并使用箭头键或h , j , k , l 。
我有完全相同的问题,但不仅在我的本地机器上,而且在通过Citrix接收器在Win7 VM中的sles机器上通过putty连接。 重新安装Ubuntu后,本地主机和远程主机都显示完全相同的问题。
在发现之后
$ localectl list-keymaps Couldn't find any console keymaps.
导致这个奇怪的VI行为我安装了包控制台数据,解决了这个问题!
sudo apt-get install console-data
给出的所有解释都有点奇怪。 我有vi但没有安装vim。
检查备选方案: /etc/alternatives/vi
→ /etc/alternatives/vi
/usr/bin/vim.tiny
/etc/alternatives/vi
/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
注意:
其他post中有很好的信息,但没有post试图解释为什么会发生这种行为。 很多人将来必然会遇到这种情况。 此外,您是否可以将此问题标记为已解决,因为之前的任何post都可能对您有所帮助?
这是一个解释 :
Vi是一个很长一段时间的编辑器,其根源是Unix系统。 这是一个很好的工具,但它已被迭代,现在有更好的。 Vim后来写的是迭代。 人们通常将vi称为“vim-minimal”,vim是vi的“改进”版本。 你可以这样想:vi是核心,vim扩展了它。
可能你是如何发现这种行为的 :
为了让您发现此问题,您按“ i ”进入插入模式,然后使用箭头键导航正确的行和编辑点。 这是导致您意外的char问题的原因。
解决方案1或2
1) vi someFile
使用vi时 ,首先移动到编辑点,然后进入插入模式。
2) vim someFile
从一开始就简单地使用vim 。
我不能强调阅读手册(手册页)或使用-h寻求帮助。 一旦你调整到shell中的模式,手册页就会成为你最好的朋友。 例如: man vi
或man vim
validation是否已安装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。 使用以下示例更新您的存储库,然后安装vim。
sudo apt-get update sudo apt-get install vim
如果你只是在互联网上搜索如何修复某些东西并且碰巧忘记键入vim
时使用vi或vim,那么有一种方法可以为将来修复它。 我提醒你注意。 您可以使用别名来覆盖vi,并引用vim,这样无论您在不常见的未来输入什么内容,都可以获得vim而不用“oops!” 时刻。 您以后可以随时删除别名。
输入vim .bashrc
。 向下移动到只有~
的空行(或以alias
开头的任何其他行(因此它们被组合在一起),然后按i键进入-insert-模式。在它自己的单独行上,输入以下内容:
alias vi='vim'
按Esc
,然后键入:wq
。 现在您需要重新加载该文件。 键入source .bashrc
在进行这些编辑后打开的任何其他shell将自动加载.bashrc文件。
传统的vi编辑器无法识别箭头键(… afair)。 有两种解决方案:
- 使用vim而不是vi
- 使用h,j,k和l进行导航(在传统的vi btw上进行编辑时无法导航。)
这也可能是由于TERM
变量; 像这样设置它:
export TERM=xterm
在某些系统上, nocompatible
选项不可用,或者如果插件中断箭头键function,则可能无法解决问题。 这是一个解决方法……
编辑.exrc
文件以包含以下行:
map! ^[OA ^[ka map! ^[OB ^[ja map! ^[OC ^[la map! ^[OD ^[ha
或者,如果问题仅存在于正常模式下,则可以更改为nmap
并跳过以下a
,如下所示:
nmap! ^[OA ^[k
等等。
这是生成它们所需的关键组合(仅显示第一个):
map! ka
这将退出编辑模式,沿所需方向移动,并重新进入编辑模式。 这需要克服Vi读取转义序列作为文字
资料来源: https : //hea-www.harvard.edu/~fine/Tech/vi.html