在vim中搜索所选内容 < >我在编写C++时使用VIM和VIM插件作为VisualStudio。通常,我发现自己想要在函数中搜索字符串,例如每次调用object->public\u member.memberfunc

我知道vim提供了一种方便的方法来搜索单个单词,方法是按*和,它还可以使用无处不在的斜杠/命令搜索键入的字符串。当试图搜索像上面那样的较长字符串的所有实例时,需要一段时间才能在/之后重新键入 有没有搜索选择的方法?例如,用v高亮显示,然后用y复制,是否有一种方法可以在/之后粘贴?有更简单的快捷方式吗?检查此Vim提示: 或者,您可以简单地用y拖动选定的文本并转到搜索模式/,然后您可以用Ctrl+R 0粘贴最后拖动的文本,使用q/而不是仅仅/。与q相同:。现在,您可以通过VIM编辑您的命令和搜索历

vim获取vim foldmarker的当前值

如何找到用一个字命令设置的vim变量的值 比如 :set foldmarker={,} 我正在为foldtext()编写一个简单的自定义函数,以设置折叠区域的自定义单行摘要 它工作得很好,但当我打开一个带有折叠标记的文档时,它看起来很有趣,而不是我硬编码到函数中的内容 set foldtext=GetCustomFoldText() function GetCustomFoldText() let foldClose = '}' let foldTtl = v:foldend -

将补丁一分为二(理想情况下在Vim中)

我有一个补丁,我想分为两个补丁。我需要按行粒度分割补丁--我不能将大块分割成两个单独的文件 我可以使用Emacs diff模式,但我是Vim用户,我不想学习Emacs。我在Mercurial队列中管理这个补丁,并且我一直在使用crecord插件,但是对于大型补丁来说,它非常麻烦,而且UI非常慢 理想情况下,我希望使用Vim来编辑我的补丁,但我还没有找到合适的插件。否则,除了Emacs之外的任何比crecord更好的东西都会对我有所帮助。这样的东西存在吗?手动拆分补丁的理想工具是git add-i

连接到办公网络时,GVim将永远无法加载

当我从Cygwin命令行加载GVim时,或者当我未连接到办公网络(映射到U:/)时,它会立即加载。当我在网络上时,打开它需要一分钟左右的时间。这是怎么回事?您可能需要将$HOME目录设置为U:/以外的其他目录。为Windows创建一个$HOME环境变量,该变量指向“我的文档”或其他任何内容,它不会尝试使用U:/。您可能需要注销/登录以获取更改。您可能需要将$HOME目录设置为U:/以外的其他内容。为Windows创建一个$HOME环境变量,该变量指向“我的文档”或其他任何内容,它不会尝试使用U:

跳回Vim中以前打开的文件

在使用Vim时,我有时会想查看函数定义或结构定义,因此我将使用C-]跳转到它。然而,我遇到了一些问题。首先,我不知道如何轻松地跳回。看起来我以前所在的文件已关闭,而我现在位于新文件中。有没有一种方法可以跳转回去,或者保留一堆打开的文件,我可以跳转回去或者做其他什么 我注意到的另一件事是,当我对当前文件进行更改时,我需要保存它,因为正如刚才提到的,我的当前文件在下一个文件打开之前已经关闭 有时我想同时查看我的当前代码和标题。有没有办法在拆分中打开标记定义?要从C-]跳回,请使用C-T。:tags命

Vim:锁定车窗顶线

在Vim中是否可以锁定窗口的顶行,以便始终可以在窗口顶部看到缓冲区中的第一行 我有一个文件,比如说,一个数据库表的转储。第一行是列的名称,其他行包含数据。我希望能够上下滚动内容,并始终看到列名 注意:行可能很长,所以我使用nowrap,希望列名和内容同时左右滚动。这就是为什么:1split不合适的原因——除非有办法同时滚动两个窗口 谢谢。您可以同时滚动两个窗口,因此我认为您可以通过拆分窗口并锁定滚动行为来执行您想要的操作。有关更多详细信息,请参阅和。请注意,您必须锁定每个窗口,以便它们同步移动。

如果试图在Vim中打开已打开的文件,如何跳转到选项卡

我正在使用命令打开新选项卡 :tabnew path/to/file 是否可以强制Vim跳转到已打开的带有文件的选项卡, 如果我试图打开已打开的文件?请尝试使用:drop命令。这很有帮助。相关信息: 我想说这属于superuser.comOk,下次我会在那里发布这样的问题。缓冲区也一样:谢谢!必须在启用GUI选项的情况下重新编译。太棒了!而选项卡放置路径则按预期工作。是否有:缓冲器模拟?为什么我们需要GUI呢?

如何将句点(.)包含在Vim';s搜索和替换命令?(替换.html扩展名)?

当我这样做时:/.htmlVim查找html 我想将所有.html替换为.php 类似这样的内容::%s/html ext/php ext/g将其转义。是一个regex字符,表示“任意字符”,因此需要使用\对其进行转义 :%s/\.html/.php/g 只需转义字符 搜索/\.html使用反斜杠转义圆点 /\.html将查找“.html”。尝试转义句点字符:/\.html请注意,用于除新行以外的任何字符。

Vim:如何打开另一个[没有名字]的缓冲区,就像启动时一样?

在我的Vimscript程序中,我需要打开一个附加的Vim缓冲区,该缓冲区不立即与文件关联,但用户可以将其保存到自己选择的文件中,就像名为[无名称]的初始缓冲区一样。如何才能做到这一点?有许多方法可以打开一个没有名称的新缓冲区,最简单的方法是:new :新建将创建带有未命名缓冲区的拆分窗口 :enew将在当前窗口中打开一个 :vnew将在垂直拆分窗口中打开一个 :tabnew将在新选项卡中打开一个。在正常模式下,键入:new您可能还需要查看:spfilename 我一直使用分割窗格-它非常棒。与

windows上gnu make的libintl3和libiconv2在哪里,需要用ruby on MinGW编译vim

我正在尝试运行gnu make for windows,但它无法运行,因为找不到libint3.dll 果然,指定需要libint3和libiconv2,但尝试跟踪它们的链接显然会在服务器上产生错误 那么,我是否需要这些库,从哪里可以获得它们,或者 我可以从其他地方下载gnu make吗 更多背景 下面是我尝试做的,也许其他人可以分享一种完全不同的方法:我想编译支持ruby 1.8.7的vim,这样我就可以使用vim插件了。我下载了minGW、gnuMake、ruby 1.8.7和vimsour

如何在Vim中重复任何命令,例如;C-x z“;在emacs中?

在Vim中,是否有任何方法可以重复上一个命令,而不管它是否是编辑命令,并且没有先见之明先录制宏 例如,假设我键入了:bn,并想再键入一次(该文件是错误的)。按显然不行。或者我正在做gE,想重复一遍(只需一次按键,因为显然gE打字有点痛苦) 也许有一些插件?类似于 (更酷的做法是将大量命令反向绑定到宏,这样就可以键入5qa@a或重复最后5个命令的某物…要重复命令行命令,请尝试@:,要重复正常/插入模式命令,请尝试 如果您希望快捷方式相同,请将以下映射添加到.vimrc:- :noremap@:-这

VIM:SourcePre自动命令中传递给源的文件名?

触发SourcePre自动命令时,是否有某种方式可以读取传递给源代码的文件名 例如: 我想将这个{INSERT Plugin Dir Name}替换为“minibufexpl.vim\u-\u优雅的缓冲区\u浏览器”使用获取源文件的名称。您可以使用expand()将其转换为完整路径并获得所需的位。例如,在您的行中: source /root/.vim/bundle/minibufexpl.vim_-_Elegant_buffer_explorer/plugin/minibufexpl.vim

如何将拖动的文本移动到vim中的特定寄存器中?

在vim中编辑时,我经常发现自己在删除文本时会停下来,并且我注意到,以前拖动的文本对于下一个操作来说会变得很方便 So-如何将已拖动的文本移动到特定寄存器(例如a下)?将寄存器0移动到寄存器a: :let @a=@0 您可以使用以下内容: noremap <leader>ma :let @a=@<CR> noremap ma:let@a=@ 现在,当您在正常模式下按\ma时,您最后一次拖动的文本将转到注册“a”。 注意:假设leader为“\”如果您只需要很短时间,

Vim 如何清空列

我正在搜索以清空VIM中的多个列 (不是删除,而是在其中添加空格) 这是我的搜索命令: /\%2c\\\%4c\\\%>5c\%5c\%/\%c是一个很好的例子 您需要匹配以下内容: /\v^(.).(.).(.)... 这将在组中保留第1、3和5列的值 然后您可以替换为: :%s!\v^(.).(.).(.)...!\1 \2 \3 ! …保留第1列、第3列和第5列,但将前八列的其余部分替换为空格。N.B:您不需要在所有问题前面加上VIM:。这就是StackOverflow的标签的用途

Vim 是否可以为启用bash_完成:!或者:r!在维姆?

我可以使用:shell输入当前目录并运行命令。bash_完成的工作很好 但是如何让bash_完成工作:!命令:r!指挥箱 注意。我是Emacs用户,EmacsM-命令不允许这样的事情(同样M-x shell,您需要M-x术语才能完成bash\u)。您有 set nocompatible 在你的vimrc里?这将自动启用的ex模式完成:。要查看可能完成的列表,您还可以使用 set wildmenu 并调查wildmode选项。这是不可能的。@Prince Goulash所指的是vim本身完成的

如何基于Vim中光标下的字符在函数中执行某些操作?

我正在写一个函数,它在LaTeX中编辑特定的环境 环境基本上如下所示: \begin{quicktikz} ...some stuff... \end{quicktikz} \begin*{quicktikz} ...some stuff... \end{quicktikz} 或者像这样: \begin{quicktikz} ...some stuff... \end{quicktikz} \begin*{quicktikz} ...some stuff..

在vimdiff中将差异标记为正常

我有几个大型json文件需要检查错误,我想知道是否有可能将差异标记为ok,并将其应用于整个diff会话,从而在文件中进一步消除它 范例 Name: Donald Duck | Name: Daisy Duck 在这里,我希望能够将这一变化标记为“ok”差异(即,我希望名称和明显的性别变化)。我不认为有一种内在的方法可以做到这一点。但我想到的方法是对文件进行替换,然后再进行重发 例如,如果名称更改正常,则只需在两个文件中替换: %s/Name: Donald Duck/Name: pl

我可以停止vim创建.swp交换文件吗?

他们把我的工作目录弄得乱七八糟。也许它可以把它们放在vim目录或其他什么地方?你可以用 设置noswap 在你的_vimrc。事实上,这是处理真正大的文件时首选的行为。请参阅“帮助交换文件”下的更多信息 对于将它们放在预定义目录中的设置,最好是如上所述 set noswap # in vimrc :bufdo set noswap # when running 或在发射时: vim -n 您可以使用更改.vimrc中交换文件的目录 设置目录=/tmp 有关更多信息,请参阅。使用: $ vi

在没有换行符的情况下,如何在寄存器中捕获vim命令的输出?

这与这个问题有关: 但是,使用:redir的问题在于,它会导致输出前面出现3或4个额外的换行符,并且使用替换函数很难删除这些换行符 例如,如果我执行以下操作: :redir @a :pwd :redir END @a的内容由三个空行组成,然后是正常的预期输出 我试着用这样的方式发布流程: :let @b = substitute(@a, '\s*\(.\{-}\)\s*', '\1', '') 但结果是@b与@a具有相同的内容 是否有人知道一种更有效(即工作)的后处理方法,或者替

vim脚本;我想替换cscope中的tnext“;

我想替换cscope的:tnext命令,但它没有按照我的预期工作 1) 下图显示了按预期工作的代码。我可以找到符号的第二个实例 function MyCounter() if !exists("s:counter") let s:counter = 1 echo "script executed for the first time" else let s:counter = s:counter + 1 echo

Vimscript允许多行字符串吗?

Vimscript允许多行字符串吗 python和ruby命令允许以下格式::pythonVimscript确实允许通过使用反斜杠开始下一行来继续上一行,但这并不像在ruby、PHP或Bash中找到的herdoc字符串那样方便 let g:myLongString='A string \ that has a lot of lines \ each beginning with a \ backslash to continue the previous one \ and wh

Vim 重新映射NERDTree双击至';T';

使用VIM NERDTree插件 有没有办法重新映射双击文件操作以在新选项卡(T)中以静默方式打开文件?1简介 这适用于书呆子树版本 2在新选项卡中打开目录和文件 如果要在新选项卡中打开目录和文件,只需在~/.vimrc中添加以下行即可 let g:NERDTreeMapOpenInTabSilent = '<2-LeftMouse>' 并更换线路 nnoremap <silent> <buffer> <2-leftmouse> :call &l

Vim替换为'/';和数字

当我没有遇到这样的问题时,Vim replace很难使用: 1) 用其他文本替换数字 2) 将/static/等文本替换为www.website.com/ 我假设我需要使用一些正则表达式来解决第一个问题,并使用一些方法来绕过第二个问题的/标记 有什么快速的解决办法吗 谢谢 :%s/\d\+/sometext/g :%s/\/static\//www.website.com\//g :%s/\d\+/sometext/g :%s/\/static\//www.website.com\//g 更简单

Vim 替换反斜杠

我试图使用vim脚本从函数声明中仅提取函数名。 出于测试目的,我使用以下简单示例: int func(int a); 在vim脚本中,我通过以下方式提取函数名: :let a = substitute(getline(line('.')), ".*\(func\).*", "\1", "") 但反向引用不起作用。当我用 :echo a 显示整行,即int func(int a) 如何使用bacreference或任何其他方法仅提取函数名 提前谢谢 在双引号内,反斜杠必须转义。可以使用单引号

如何在vim中插入没有路径的文件名

我知道在插入模式下,我可以使用CTRL-R-%插入具有路径的FilineName 但是我想只插入文件名,不插入路径部分。有类似的命令吗?在插入模式下,您可以使用 CTRL-R =expand('%:t') <C-r>=expand("%:t")<CR> 你可以用 CTRL-R =expand('%:t') <C-r>=expand("%:t")<CR> 这是地图命令吗?这是否会影响其他C-R命令,例如wNo,这就是您必须在插入模式中键入的内

VIM:如何将拖动的文本附加到未命名寄存器

我知道Ayy可以将当前行附加到寄存器a 如何将当前行附加到未命名寄存器?您可以使用此选项 :let @"=@".getline('.') 添加到未命名的注册表。我不相信有键盘快捷键可以执行此操作。(但是,如果需要,可以创建映射。) 我之所以说没有键盘快捷键是因为:h quote_alpha只讨论大写字母(用于追加)。而:h quote_quote 在a-z中选择一个自由寄存器(我更喜欢寄存器a) “ay{动议} “Ay{motion}…(附) 现在你有了寄存器a中所有被拉扯的文本 你在未命名

当有注释掉的大括号时,如何使用vim缩进行?

为了根据源代码的语法缩进源代码,我通常使用vim重缩进操作符('=')。我也在整个文件中使用它,特别是当我必须阅读其他人编写的源代码,并且他们有不同的选项卡设置或类似的设置时('gg=G'在那里非常有用)。只有当我有类似的问题时,这才有问题 (1) int main() { (2) for (int i=0; i<3; i++) { (3) //for (int i=0; i<4; i++) { (4) std::cout << i <

Vim 使NERDTree和CtrlP忽略顶级供应商目录

我希望NERDTree和CtrlP都忽略(不显示也不索引)顶级供应商目录 < P>但是,我确实希望这两个插件(以及将来的任何东西)都能考虑那些不在项目顶层的供应商目录下的文件(例如APP/资产/ JavaScript /供应商)。 我的wildignore设置如下: wildignore+=*.o、*.obj、.git、*.rbc、*.class、.svn、coverage/*,供应商 这使得供应商目录无论在哪里都被忽略 你能推荐一个解决方案吗 谢谢。对于NERDTree,您需要将其添加到g:N

Vim在执行命令后在底部打印文本

我想做的是给出视觉反馈,告诉他们我做了什么。例如,如果我映射了一个键来执行git拉取和刷新,我想说“文件重新加载” 在执行函数后,我应该在VIM中使用什么函数来打印底部小行中的文本?我说的是底部的一行,当你输入“q”时,它会说“录制”。如果不可能(可能仅从vim保留),是否有其他方法可以做到这一点?尝试echo或echom(请参阅他们的帮助条目了解差异)。尝试echo或echom(请参阅他们的帮助条目了解差异)

Vim:为什么在粘贴模式下不显示光标位置?

当我在vim中进入粘贴模式时,光标位置(否则显示在模型线上)消失。当我重新进入nopaste模式时,它会重新出现。这背后的原因和意图是什么?是否有办法使位置也显示在粘贴模式下?这可以在您的/.vimrc文件中配置 看这里: 我认为这一选择将有助于: :set guicursor+=a:blinkon1 为此,请使用guicursor设置,并为粘贴模式设置光标 在Vim中尝试::help guicursor,您将找到此设置的不同模式列表,即: The mode-list is a dash se

像用户手册一样创建vim标签

我想以类似于vim用户手册的方式在.txt文件之间创建标记 我已经知道如何生成标记文件,并且可以在文件之间链接。我唯一想弄明白的是如何使我所有的标签都有不同的颜色(如用户手册中的蓝色),以便它们易于识别 我最好的猜测是,我必须为txt文件自定义语法高亮显示,但我不确定它如何区分标记和普通文本 手册中的标签可通过:help命令获得。将文本文件与Vim文档混合使用可能不会给您带来好处 如果你只想在你的文本文件之间创建链接,你可以为此尝试一些插件编写;我建议--它包括几个用于创建/管理文本文件上的链接

Vim Tmux复制缓冲区限制

每当我从tmux缓冲区复制一些东西(通常是用鼠标),然后将其粘贴到ViM中时,内容就会被截断。最后一次尝试只得到了我复制的完整块的大约750字节 这在Mac上的iTerm中。请确保从tmux缓冲区粘贴 我也有同样的问题,粘贴步骤出错了。我偶然发现 我试图做的是简单地使用ctrl-v从系统剪贴板粘贴(正如您在问题中所解释的那样,这是有效的,但只是部分有效) 相反,使用ctrl-b]从tmux缓冲区粘贴可以正确完成任务。使用tmux 1.8、iTerm2和重新附加到用户名称空间时,我遇到了同样的问题

如何使用VIM从表格文本创建列表

我有一些这样的文字: UUU F CUU L AUU I GUU V UUC F CUC L AUC I GUC V UUA L CUA L AUA I GUA V UUG L CUG L AUG M GUG V 'UUU': 'F', 'CUU': 'L', 'AUU': 'I', 'GUU': 'V', 'UUC': 'F', 'CUC': 'L', 'AUC': 'I'

Vim 如何在:%left和gg=G之后获得相同的smartindent结果

我对vim的使用还相当陌生,所以如果这是一个非常简单的问题,请耐心等待。问题是,我在我的.vimrc中设置了smartindent(基本上只有这一个w.r.t.缩进),它按照我的预期工作,例如,在将下面的代码写入js文件后,它缩进了2个制表符(或8个空格)的间距(我认为是默认选项): 如果我用:%left删除缩进,然后用gg=G自动缩进整个文件,我得到: 1 sjsjs function(sjdhd, jdjd,{ 2 aaaa, 3

vim语法强调怪异

我的latex高亮显示有一些特定的设置,我使用的是indentLine插件,它需要让g:indentLine\u fileTypeExclude=['tex','bib']来避免错误。无论如何,当我用vim filename.tex启动vim时,我的vimrc被正确加载,但是当我简单地调用vim然后打开给定的tex文件时,它将忽略vimrc 知道是什么引起的吗?另外,让我知道你需要什么信息,因为我还不确定需要什么 编辑: 好吧,我发现在这两种情况下,我都处在[tex]环境中,但如果我处在[pla

vim/终端突出显示条件

我只是尝试设置vim,以便获得我喜欢的颜色 我创建了一个~.vimrc文件,并设置了语法 然后我去了Terminal>Preferences>Profile>Text,一直在更改ANSI的颜色,使文件看起来像我想要的那样 不幸的是,我遇到了一个问题,即条件(if、else等)没有使用任何ANSI颜色,因此我无法以这种方式更改我的首选项 我一直在查看位于/usr/share/vim/vim/vim73/syntax的vim语法,以了解这是如何实现的。我看到了这些颜色的分组位置,但似乎找不到指定颜色

solaris上的puppet尝试更新vim增强版

我有安装了puppet代理的Solaris 10操作系统。 当我运行puppet代理-t时,我得到一个错误: 错误:/Stage[main]//包[vim-enhanced]/确保:从缺席更改为最新失败:无法更新:Sun包必须指定包源 我没有关于vim升级的课程,所以错误来自哪里 如果我确实有一些我不知道的类,如何指定包源 你不需要任何类,木偶“包”参考解决你的问题 使用此资源: package { 'vim-enhanced': ensure => prese

Vim状态行赢得';除非我按一个键,否则不会立即出现吗?

我三周前刚搬到维姆。我知道这是一个小问题,但我发现它不知怎么地让我恼火。每当我打开vim时,状态行(或状态栏?)不会立即出现(+光标始终位于屏幕的最后一行),除非我按下一个键(任意键)。这是我的vimrc供参考: set nocompatible " Pathogen filetype off runtime bundle/vim-pathogen/autoload/pathogen.vim execute pathogen#infect() filetype plugin indent on

Vim搜索和更换可变行数

我有一些文本,其中有两列和两行或更多行。第一列名称只打印一次。此后,后续行将保留为空,直到再次更改为止 e、 g 我想更改以上内容以打印所有行中的列名,如下所示: name1 xxx name1 zza name1 yyy name1 zzz name2 ggg name2 xxx name3 xxx name3 zza name3 ggg name3 yyy name3 zzz 注:如前所述,第一列为空白的行数是可变的。可以是2以上的任意数字 如果重复应用,以下模式将起作用: :%s/\

Vim 如何在Tmux中使用ESC禁用窗格切换

我注意到esc也会开始监听切换窗格的指令。我是Tmux新手,我今天早些时候复制了一个Tmux配置文件,它应该只启用alt切换窗格,所以我不确定这个配置文件是启用了它还是Tmux 2.3中的标准配置 鉴于我在进入正常模式后开始四处走动,这让我非常恼火。有人能告诉我如何使用esc禁用窗格切换吗?我认为~/.tmux.conf文件包含如下行: bind -n M-h select-pane -L bind -n M-j select-pane -D bind -n M-k select-pane -

Neovim中的功能是否比命令快?

使用函数而不是命令,甚至对用户公开的功能也是如此,这会在处理init.vim时增加一点额外的键入。这有什么原因吗?函数比命令快吗?由于大多数自定义命令调用一个(或多个)用户定义的函数,函数的性能优势很小,但这一点都不重要 命令通过更快地键入、允许(自定义)完成、更易发现等方式弥补了这一不足。所有关于过早优化(不要这样做)的警告都适用于这里 您可以参考dein软件包管理器。我猜在启动过程中,通过在~/.vimrc中调用它,只需要(主要)与它进行交互。通过使用(自动加载)函数,您不需要:runti

Vim 评估CTAG的当前文件

我正在尝试使用%vsp | tag myfile.h到底做什么?当我试着运行它时,它只会分割窗口。你试过使用expand()吗? vsp | tag myfile.h vsp | tags %<.cpp

在Vim上搜索和更换后查看更改?

有没有办法查看vim中搜索和替换生成的更改 例如,以下示例删除尾随空格 :%s/\s\+$//g 但是,我不确定正则表达式,我担心它改变了一些我不想改变的东西。但我也不想使用gc而不是g,因为确认太多的更改会让人困惑,需要一段时间,相反,我希望在新的缓冲区中看到更改,作为某种列表。这可能吗?Neovim有一个很好的功能,可以动态地突出替换 "As you type a substitution the results will immediately be "visible in the e

Ctrl-f在MacVim中不向前滚动

在MacVim 8.0中,ctrl-f会显示一个搜索窗口,而不是在缓冲区中向前滚动一个全屏。ctrl-F(即同时按下SHIFT键)会给出相同的结果 我是否可以采取故障排除步骤或修复步骤?我认为发生的情况是,gvim 8.0在mswin.vim中有一个映射,但以前版本的gvim在mswin.vim中没有该映射 我使用这两个版本(在不同的计算机上),因此对gvim 8.0版本中的映射感到惊讶 我的vimrc源于mswin.vim,因为我喜欢复制粘贴功能。我不知道MacVim。但我在window gv

VIM中持续(粘性)的第一行或第一列

这可能是一个延伸,但是否有机会编写一个vim命令脚本,以便第一个命令可以执行?行始终显示在顶部?由唯一分隔符定义的任何列中的第一列是否始终显示在左侧 我能做的最好的事情就是分割屏幕并最大化底部的屏幕,比如 split % wincmd w wincmd _ 这对于上面的一行来说是很好的,但是当然,如果这一行比屏幕宽,它就不能很好地工作——除非有办法启动一个模式,其中两个窗口的列对齐 对于持久性专栏,我不太确定。需要以某种方式获得第一个分隔符f命令的列,我想,但我无法让它工作,vsplit%和垂

使用vim通过常量在文本中输入多个数字

我有一段文字: (-1.000mm 1.000mm) (-0.500mm 0.800mm) (0.500mm 1.200mm) (1.000mm 1.000mm) (0.800mm 0.500mm) (1.200mm -0.500mm) (1.000mm -1.000mm) (0.500mm -0.800mm) (-0.500mm -1.200mm) (-1.000mm -1.000mm) (-0.800mm -0.500mm) (-1.200mm 0.500mm) (-1.000mm

将键附加到vim中的早期录制

我知道是什么 假设我已经在一个寄存器上录制了一段录音,我缺少了一些我想添加到该序列中的密钥。有没有办法将这些键附加到vim中的早期录制中?使用大写字母将附加到寄存器,因此qA将继续录制@a宏 从:帮助q: q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"} (uppercase to append). 注意:这适用于与寄存器相关的所有内容,因此“Ayw还会将下一个单

Vim 如何调用“外部”;互动/途易“;命令、交互和读取std输出

我正在尝试编写我的第一个vim脚本,因此如果这个问题归结为不理解基础知识,我很抱歉 主要目标是我想从vim内部调用一个外部命令,并将结果读回文件。 我知道如何使用简单的shell命令,例如r!ls。但是,我想要与之交互的命令是“interactive” 我不知道这是否是一个有意义的描述。但在shell中调用此命令会打开一个TUI,然后在与TUI交互后,该命令将退出并将内容放入标准输出。我想把标准输出读回vim 讨论特定命令可能会有所帮助,该命令是papiscli引文管理器。如果您在shell中调

Vim 可能是';重复';点命令?

我正在删除一列垂直的文本,方法是先执行di”,然后执行j.或尽可能多的输入项,下面是一个按键记录:。是否有方法将重复几次,例如: 7j 类似于我可以做的7dd?有一个简单的方法: 6: ................. vim will put :.,+6 然后键入:norm.,整个命令将被删除 :.,.+6norm .<Enter> 我宁愿使用record功能来执行此操作。如下所示: 按qq开始在q寄存器中记录 di“:删除引号(“) j:向下一行 q:停止录制 6@q:要

我可以在vim中定义函数吗?

我的问题是我是否可以在vim中定义一个函数并运行代码。我问这个是因为当我运行程序时,终端会更新,但我不知道如何运行程序。例如: 在同一目录的终端上尝试python3-i ex.py

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 414 页