Vi & Vim

使用vi和Vim系列文本编辑器的人员的问答

3
我怎么知道我在vi命令:sh的shell中?
在vi中,我可以使用:sh命令获得一个shell终端。然后,我可以通过exitshell 返回vi 。 但是,如果我长时间使用Shell终端,却忘记了exit关闭任何东西还是将vi返回给我。 有什么方法可以检查我是否返回到vi?jobs或fg不起作用。

1
为什么在使用河豚2时vim会抱怨加密较弱?
我从2015年开始使用Vim(:X)中的内置加密方法保存的文档。当时节省了使用blowfish。 我现在收到的消息(2017)是这样的: Warning: Using a weak encryption method; see :help 'cm' Enter encryption key: ********************************************* Enter same key again: ********************************************* 我认为这很奇怪,但是我认为这与某些缺陷有关,并且在阅读了加密方法I之后set cryptomethod=blowfish2。打开它后,它会工作,将密码方法显示为河豚2。问题是我仍然收到有关使用弱加密的消息!为什么?是否有旧的blowfish1加密签名的残留物?是否需要导出文本并重新保存文本以进行修复?

3
在Vim插件中同时支持python和python3的优雅方式
我最近收到一个请求请求,以更改我的vim插件以使其支持python3。但是这些更改破坏了Mac上的vim插件,该插件似乎在听python。 python import sys 与 python3 import sys 是否有一种优雅的方法可以使插件中的脚本检测应使用的语句?就像是: if has('python') python import ... elseif if has('python3') python3 import ... else finish endif 谢谢。

1
如何获得替代命令的预览?
我经常发现自己需要执行替换操作,该替换操作将使整个大文件中的匹配稀疏并且具有非平凡的搜索和替换表达式。 例如,说我有一些函数调用,例如okFunction(arg1, arg2 arg3)。当然,每个函数调用的args都会不同。现在说我发现了一个不需要的更好的功能arg2。我可以轻松地调整整个文件 :%s/\<okFunction(\(\w\+\), \(\w\+\), \(\w\+\))/betterFunction(\1, \3)/gc 尽管从概念上讲很简单,但我不确定在这种较长的模式中语法是否正确。该c标志在这里确实有帮助,但是问题是当要求确认时,vim不会显示匹配项将被替换为什么。我的意思是,它将显示替换表达式,但不显示评估结果。如果我用确认替换y,vim会立即跳到下一场比赛,而且我也不会看我是否犯了任何错误。 我发现vim-over插件可以部分解决问题,但前提是您在键入命令时所有数学都在屏幕上可见。按下Enter键后,其行为与我上面描述的完全相同,并且没有得到预览。 因此,在要求对替代命令进行确认时,有没有办法使vim评估替代表达式?

4
在neovim中,如何在编辑器实例之间共享寄存器?
我知道vim划分了客户端/服务器,允许不同vim客户端之间共享寄存器,但是您如何在neovim中实现相同的目的?它不支持客户端/服务器标志。我看到了这个问题,但我的目标是专门共享寄存器,而不是模仿其余的客户端/服务器。是像neovim remote这样的唯一方法,还是我可以做的更简单的事情?

3
如何使.vimrc中的突出显示命令在Vim 7.4中立即生效?
highlight我的.vimrc文件中有几个命令。在Vim 7.3中,这些在Vim启动后立即生效。在更新到Vim 7.4之后,情况不再如此。Vim最初使用其默认突出显示。当我.vimrc通过执行再次加载时source ~/.vimrc,突出显示了我想要的效果。 您应该能够使用以下步骤来重现此问题: 复制.vimrc文件。 替换~/.vimrc为仅包含行的文件highlight Type ctermfg=28 cterm=bold。 运行vim dummy.c在256色终端(例如GNOME终端)。 键入int到缓冲区。本int应出现在常规字体并淡绿色,这不是我想要的。 输入:source ~/.vimrc。现在,int应当以粗体显示,并以深绿色显示。 根据如何控制/配置vim颜色一文,只需将highlight命令放入即可.vimrc。文章说您应该放在命令syntax enable后面highlight,但这没有任何区别。 我的第一个解决方法是在每个highlight命令之前.vimrc加上autocmd VimEnter *。这适用于某些文件类型,但不适用于其他文件类型(C文件为示例)。 这种行为的原因是什么?如何highlight在启动Vim时执行命令,以使它们在整个Vim会话期间对所有缓冲区生效?


1
vim中的参考资料/文档
我假设vim随附的唯一文档是关于vim的。 如果我安装了插件,还将有该插件的文档。 但是vim中是否有其他语言的文档? 例如,假设我正在Vim中使用python进行编码,并且想要快速查找Python中的列表推导。如果我可以只输入:h python-docVim并且Python文档在Vim文档中提供,那就太好了。 其他示例是:h markdown提出降价语法等。 网络上已经有这种东西了吗?是否有我可以下载的此类文档:helptags?我试图用谷歌搜索,但没有用,因为例如,如果我用谷vim markdown documentation歌搜索,谷歌认为我想知道如何在Vim中编写markdown并显示诸如Vim的markdown插件之类的链接...

2
使用>>缩进下一个缩进级别
有时,我不得不使用未缩进缩进级别的代码,通常在复制/粘贴文件中的某些内容后,我已将Vim设置为(每级4个空格)。我通常使用<<和>>。问题在于它们不会跳到下一个缩进级别,它们只会增加或减少4个空格。 如果我有这样的代码 if condition: do this do that 做>>下去do that会导致 if condition: do this do that 我要它去 if condition: do this do that 除了轻松匹配上面的行的缩进之外,我希望它跳到下一个缩进级别,而不是添加4个空格。 这是我在.vimrc中关于缩进的内容 :set tabstop=4 shiftwidth=4 expandtab

1
启动时回显消息,无提示
我想根据某些启动功能是否成功,在启动时回显自定义消息。我在我的尝试.vimrc echo 'test' "All my settings ... 我希望vim回显一条消息,就像我刚刚键入的一样 echo 'foo' 从打开vim 之后的命令行,但是相反,我得到了这个讨厌的对话框,该对话框在我的vim窗口打开之前就出现了。我也试过 exe 'echo "test"' 和 silent echo 'test' 但是这些都不起作用。
9 vimrc  echo 

1
将Vim输出显示为文本
我想知道是否有任何类似于的命令:TOhtml,但仅用于纯文本并代表整个Vim显示。 例如,给定显示: 它将创建以下文本文件: 1 B 1 a ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ N <me] [+] 100% 1:1 ~ 1 a ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ N <me] [+] 100% 1:1 N <e] [+] …
9 vimscript 

4
行号特定的文本宽度设置
我使用gvim编写电子邮件,并用于tw=72延长行数。现在,我还在同一文档中编辑基本邮件头,例如,我将收件人添加到邮件中。现在,tw=72它每次也会中断72个字符。 如何tw=0在前4行(即标题部分)以及tw=72文档的其余部分设置? 我的formatoptions看起来像这样,如果相关的话: set fo+=tcqn


1
使用退格键以普通模式修改当前命令?
有时,在普通模式下输入命令时,您可能会打错字,例如,如果我打算打字10dk,可能会不小心开始打字19d。 由于该命令尚未完成/提交,是否可以使用退格键删除不正确的键,例如:19d<backspace><backspace>0dk,而不必按Escape键重试该命令? 附带问题:数据结构中是否存在Vim术语,可在提交前保存当前命令?

1
我可以为vim定义自定义编码吗?
我经常使用Programming Puzzles和Code-golf。那里的许多用户纯粹是为了打高尔夫球而编写了自定义语言。我什至现在正在独自工作。这些语言中的许多都有自己的自定义编码,因此它们可以将更多命令压缩为一个字节。例如,认真,果冻和05AB1E。 我可以配置vim以使用自己的自定义编码吗?我想配置字节到unicode代码点的映射。例如: 0x01 == "¢" 然后,当我键入时<C-v><C-a>,它将显示一个¢字符,而当我编写时,它将保存byte 0x01。 这甚至可以实现吗?而且,这是否可以与系统剪贴板一起正常工作?(例如,我可以从浏览器复制并粘贴到vim,反之亦然)
9 encoding 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.