我被困住了,无法逃脱.它说:
"type :quit<Enter> to quit VIM"
Run Code Online (Sandbox Code Playgroud)
但是当我输入它时它只是出现在物体中.
我更愿意在Vim中编写提交消息,但它在Emacs中打开它们.
如何配置Git以始终使用Vim?请注意,我想在全球范围内执行此操作,而不仅仅是针对单个项目.
应该是微不足道的,它甚至可能在帮助中,但我无法弄清楚如何导航它.如何在vi中快速缩进多行?
我正在尝试用,新行替换当前文件中的每个:
:%s/,/\n/g
Run Code Online (Sandbox Code Playgroud)
但它插入的内容看起来像是一个^@而不是实际的换行符.该文件不是DOS模式或任何东西.
我该怎么办?
如果你像我一样好奇,请检查问题为什么\ raim的换行?同样.
在Vim中搜索之后,我突出显示了所有出现的事件.我怎么能禁用它?我现在再做一些无法找到的乱码.
有没有办法暂时禁用突出显示,然后再次需要时重新启用它?
我想搜索一个大写单词,例如文件中的COPYRIGHT.我尝试过执行搜索:
/copyright/i # Doesn't work
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我知道在Perl中,如果我将i标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式.似乎Vim有自己的方式来表示不区分大小写的正则表达式.
如何复制Vim中以类似的方式,以一整行Ctrl+ D中的IntelliJ IDEA/ReSharper的或Ctrl+ Alt+ ↑/ ↓在Eclipse?
很多人可能已经看到了允许你在需要root权限的文件上写的命令,即使你忘了用sudo打开vim:
:w !sudo tee %
Run Code Online (Sandbox Code Playgroud)
问题是我不知道这里到底发生了什么.
我已经想到了这个:
w是为了这个
*:w_c* *:write_c*
:[range]w[rite] [++opt] !{cmd}
Execute {cmd} with [range] lines as standard input
(note the space in front of the '!'). {cmd} is
executed like with ":!{cmd}", any '!' is replaced with
the previous command |:!|.
Run Code Online (Sandbox Code Playgroud)
所以它将所有行作为标准输入传递.
该!sudo tee部件tee使用管理员权限调用.
为了让所有人有意义,%应输出文件名(作为参数tee),但我找不到有关此行为的帮助的参考.
tl; dr有人可以帮我剖析这个命令吗?
我知道如何一般在命令模式中移动,特别是跳到线路等.但是跳到我目前所在线路末端的命令是什么?
vim ×10
vi ×6
editor ×4
indentation ×2
auto-indent ×1
emacs ×1
escaping ×1
git ×1
highlight ×1
newline ×1
replace ×1
search ×1
sudo ×1
whitespace ×1