在 vi 编辑器中寻求帮助。
我想插入到行首。我希望将其插入特定的行范围。例如,行号 1 到行号 20。
任何想法
因为我还在学习 vim,所以我经常发现自己错误地输入了错误的命令(例如,假设我输入了ci{
,而我的意思是ca{
)。当我这样做时,vi 进入插入模式并(在本例中)删除一些文本,准备好输入替换内容。如果我Esc
此时点击,我将返回正常模式,但c
命令删除的文本仍然被删除。有没有办法让我回到正常模式,同时撤消该命令的全部效果?(我知道我可以打u
后Esc
,但我正在寻找一个键/加速键)。
在 bash 中,我们可以向后或向前移动 1 个单词或字符。是否有任何选项可以让我将光标移动到我指定的前一个字符,例如 Forward Slash。? 类似于f
vim 中的击键,它搜索先前出现的以下字符?
谁能解释为什么 Vim 仍然有 vi 兼容模式?为什么要使用它?
因此,我们必须保持set nocompatible
我们的.vimrc
; 有像文档的噪音{not in Vi}
,{Vi: no ++opt}
等等。
而且我真的无法理解为什么开发人员如此小心地保存它。
在 Vim 中,我有以下文本:
门 椅子 桌子 乌干达
我想在每个奇数行上添加编号文本,这应该给出:
>item1
Door
>item2
Chair
>item3
Table
>item4
Uganda
Run Code Online (Sandbox Code Playgroud)
这在vim中可能吗?
我的 _vimrc 看起来像这样
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
colorscheme pablo
set backup=~/vimfiles/backup
set directory=~/vimfiles/tmp
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' …
Run Code Online (Sandbox Code Playgroud) 最近我尝试学习一些关于unix的东西。当我尝试使用 vi 命令编辑某些内容时,这对我来说非常困难,因为我必须时时切换编辑模式和控制模式。这很不方便。是我错过了什么还是本来就是这样?反正有什么可以改进的吗?谢谢 :)
在 VI 和 man 命令中,如何精确匹配一个字符串?我不知道如何精确匹配一个字符串~
vimtutor说这个lesson 4.2 : The search command
在普通模式下输入 / 字符。请注意,它和光标出现在屏幕底部,就像 : 命令一样。
现在输入 'error' 。这是您要搜索的词。
要再次搜索相同的短语,只需键入 n 。要以相反的方向搜索相同的短语,请键入 N 。
这在与 vim 导师一起练习时非常有效,但我似乎无法让它与文件一起工作。基本上,当我键入/
字符然后键入要搜索的模式时,它将按预期进入第一个匹配项。但在文件内容下方,我仍然看到带有闪烁光标的搜索模式。例如,如果我的模式是字符串foo
,我会看到/foo
并且光标一直闪烁。然后按下n
只是将按下的字符附加到搜索字符串,搜索模式现在变得/foon
不是我想要的。
为什么我会看到这个问题,我该如何解决?
我vim
用于编码。当我有类似以下内容时:
SomeModule->actualMethod()
如果我将光标移到SomeModule
并执行 agf
我收到SomeModule-
路径中不存在的投诉。
我怎样才能摆脱-
这样的SomeModule
文件打开?
我发现在 vi 中导航已换行的文本文件有些困难。如果有一行是自动换行的并且向下延伸了几行,则很难使用箭头键在该行周围导航。如果您在自动换行的一行上按向上键,它不会上升到上一行,而是会上升几行。如何解决这个问题?