有人可以用简单的语言向我解释根据文件类型更改Vim的缩进行为的最简单方法吗?例如,如果我打开一个Python文件,它应该缩进2个空格,但如果我打开一个Powershell脚本,它应该使用4个空格.
当我希望光标在Vim中转到文件的末尾(即最后一行的末尾)时,我必须键入六个键击:
<ESC>G$a- 在我的键盘布局上转换为ESC+ Shiftg+ Shift4+ a.
我怎样才能更有效地做到这一点?
由于我经常在许多不同的机器上工作,我不能总是改变.vimrc,所以我在寻找答案而不必编辑或创建该文件.
我已经看过在Vim中使用制表符的能力(用:tabe,:tabnew等)作为我当前在隐藏缓冲区中在同一窗口中打开许多文件的做法的替代.
我希望我打开的每个不同文件始终位于其自己的选项卡中.但是,有些事情会妨碍这一点.我该如何解决这些问题:
当命令喜欢gf并^]跳转到另一个文件中的某个位置时,该文件将在当前选项卡的新缓冲区中打开.有没有办法让所有这些命令在新选项卡中打开文件,或者如果文件已经打开则切换到现有选项卡?
当我可以使用切换缓冲区时
:b <part of filename><tab>
,它将完成现有缓冲区中文件的名称.<part of filename>甚至可以是文件名的中间而不是开头.是否有相应的切换标签?
每当我使用该:sav命令时,它都会使用新名称保存文件,并在Vim中打开新文件.
是否可以使用新名称保存文件,但保持原始文件可以编辑?
我想将tab转换为gVim中的空格.我向我添加了以下行_vimrc:
set tabstop=2
Run Code Online (Sandbox Code Playgroud)
它可以在两个空格处停止,但它仍然看起来像是插入了一个tab键(我尝试使用h键来计算空格).
我不知道如何将gVim转换为空格?
当我处于INSERT模式并且我已经打开expandtab选项时,按下选项卡会导致插入已配置的空格数.
但偶尔我想插入制表符本身.
你知道怎么做吗?
我想在Vim中合并两个线块,即取线n..m并将它们附加到线条上a..b.如果您更喜欢伪代码解释:[a[i] + b[i] for i in min(len(a), len(b))]
例:
abc
def
...
123
45
...
Run Code Online (Sandbox Code Playgroud)
应该成为
abc123
def45
Run Code Online (Sandbox Code Playgroud)
没有手动复制和粘贴,有没有一种很好的方法可以做到这一点?
而在插入模式在Vim中,有没有什么办法来遍历文本移动一些字符向前和向后除了使用箭头键?
如果我按h,j,k和l在插入模式下,实际的字符显示在屏幕上,而不是在文本上移动.
我现在这样做的方式是不得不求助于Ctrl+ [(Esc)然后遍历文本; 但显然这不是很有成效.