Vim 用sed或awk枚举替换

给定带行的纯文本文件 bli foo bla abc dfg bli foo bla hik lmn sed或awk magic将其转换为什么 bli foo_01 bla abc dfg bli foo_02 bla hik lmn 因此,每次出现“foo”都会被“foo”[occurrence number]所取代。这可能不是您所需要的,但它可能会给您提供一些正确方向的想法 Administrator@snadbox3 ~ $ cd c:/tmp Administrat

Vim:在编辑器中运行命令,而不是退出

当我做类似的事情时!git init在vim内部,它切换到bash并在那里运行命令,然后说“按Enter键继续” 根据我所读到的和看到的,我认为它将在vim的底部区域(可能在缓冲区中?)运行该命令 我做错什么了吗?有我搞砸的场景吗 虽然git插件看起来确实很有趣,但我正在观看TekPub的演示,他正在做类似的事情!捆绑安装,结果直接显示在vim的底部(在他键入命令的下方) 如果有必要,我也在Ubuntu中使用vim。如果你特别想使用Git,请查看Tim Pope的逃犯插件 使用 :read !

VIM插件通过NERDTree插入图像标签

我正在尝试为vim的NERDTree找到/创建一个插件,该插件允许插入HTML图像标记的快捷方式 可能与此处所示的解决方案类似: 只有我不能让它工作-看起来它使用perl脚本调用ImageMagick来确定图像维度,然后生成HTML标记。解决方案中未显示此脚本:( 如果脚本允许选择(多个)图像,并将生成的HTML自动粘贴到最后使用的窗口的最后使用位置,那就太好了 有人知道这样一个现有的插件,或者引导我朝着正确的方向发展吗?事实上,我曾经: :e /directory/where/are/ima

如何从源代码构建vim 7.3.285

我需要查看vim源代码,但是我在查找版本7.3.285的源代码时遇到困难。版本7.3.154中的源代码。当我在谷歌上搜索“vim 7.3.285 source”时,我得到的大部分文件都是.rpm文件,而且总是关于Mandriva的。我设法找到了一个.scr.rpm文件并将其解包,但是它的主vim文件夹与vim站点上的文件夹完全相同。我猜我已经使用补丁文件夹将补丁应用到版本285。因此,我尝试了以下方法: 下载.src.rpm文件 像这样解包.src.rpm文件rpm2cpio vim-7.3.

在Vim内搜索并替换多行模式

我有一个函数 myFunction ( myStruct_1_Ptr *var1, /* commenty */ myStruct_2_Ptr *var2, /* commenty */ myStruct_3_Ptr *var3, /* commenty */ int info1, int info2, int info3, int info4 ) 然后我将所有这些信息移动到包装结构中,我想让它看起来像 myFunction ( myStruct_1_Ptr *

终端编码在vim中是如何工作的? 在GNOME终端中(3.4.1.1) 在vim(7.3)中:

终端无法显示UTF32字符。 修改Vim的多个编码选项后。 Vim仍然可以显示UTF32,没有任何问题。 为什么?很有趣。您可以在内部运行命令,以验证Vim是否正在将UTF-8写入您的终端 关于内部操作的帮助和间接提示,但我没有找到相应的提示,说明相同的行为应用于termcodencing。分别为: Vim内部使用UTF-8而不是UCS-2或UCS-4 及 当使用“unicode”、“ucs-2”或“ucs-4”时,Vim在内部使用utf-8 因此,我们将使用(特别是版本7.3.548)来了解发

Vim脚本:检查光标是否位于当前单词上

例如,在这种情况下: function_call(arg1, arg2); ^Cursor is here 函数调用(arg1、arg2); ^光标在这里 调用expand(“”)将返回“arg2”。 当光标位于当前单词位置左侧时,我需要过滤掉这些大小写。 有办法吗?可以通过检查光标当前是否位于关键字字符上: let isOnKeyword = matchstr(getline('.'), '\%'.col('.').'c.') =~# '\k' 使用(下一

vimrc中带有autocmd的多个高亮显示

我想使用两个autocmd,突出显示过长的行,并突出显示行末尾的空格,但我没有成功,只显示两个命令中的最后一个。。。 可能吗 以下是相关的台词: augroup vimrc_autocmds autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#592929 autocmd BufEnter * match OverLength /\%81v.*/ autocmd BufEnter * highli

如何在vi/Vim中多行选择的开头插入文本

在中,如何在所选内容的每行开头插入字符 例如,假设我的语言的注释系统不允许像/**/这样的块注释,我想通过在每行开头加上/来注释掉一块代码。如何执行此操作?这将用“/”替换每行的开头: 这将用“/”替换每个选定行的开头(使用视觉模式选择): :” 按Esc键进入“命令模式” 使用Ctrl+V组合键进入视觉块模式 上移/下移以选择要编辑的行中的文本列 评论 然后按Shift+i并键入要插入的文本 然后按Esc键,等待1秒,插入的文本将出现在每一行上 有关更多信息和阅读,请查看Vim Tips W

vim左、右列高亮显示

我需要用不同的背景色突出显示第72列以外的任何内容。最好的方法是什么?一些编辑器所做的类似于可见行边距的操作也很好。可能吗 一些背景: 语法类似于Pascal,并且工作正常 只有背景需要改变。前景已按应有的方式高亮显示。在某些情况下,字符串将超过80个字符,并将超过72列的限制,因此应突出显示为字符串 编码标准类似于COBOL,第72列以外的所有字符都应使用注释行。这些第72列注释确实以注释开始字符开头,并正确高亮显示。您可以 :match DiffAdd '\%>72v.*' 这将突出

如何在vim中将小写标记用作全局标记?

如何将小写标记也用作全局缓冲区 标记是a-z,因此我真的不需要为仅缓冲区标记保留小写标记,因为我没有超过几个标记/缓冲区 因此,我几乎总是希望有全局标记,但是ma比ma更容易输入,'a与'a也一样,你可以通过它的外观来映射它们。例如在你的生活中 nnoremap ma mA nnoremap 'a 'A nnoremap `a 'A 尽管我怀疑这种方法可能会使不使用nnoremap的插件出错 我不明白全球分数意味着什么,所以我尝试了一下。很酷的东西它会将您切换回设置标记的缓冲区。对不起,我没有

vim';s标记列表插件无法识别.sqC文件的文件类型

我已经使用CTAG有一段时间了。我最近下载了vim的标记列表插件。 很酷。但我面临一个问题。在构建CTAGS文件时,我使用LangMead选项将嵌入的SQL文件(.SQC文件扩展名)扩展到C++。 但当我尝试使用标记列表时,它无法识别这些文件的文件类型,并且TlistOpen命令不会为其打开任何内容。 感谢您的帮助 提前谢谢 -Harry这可能是因为嵌入式SQL不受(丰富的)CTAG()的支持。您可能需要自己添加对嵌入式SQL的支持(请参阅和),这可能是因为(繁荣的)CTAG()不支持嵌入式SQ

vim:是否有一个插件可以在源代码中显示所有的TODO标记?

和你们大多数人一样,我每天都要处理好几个源代码文件。很多时候,我疯狂的工作流程让我做了如下事情: # TODO # clean up this code # do something else with this code 目前是否有vim插件可用于搜索TODO或类似的助记符,并打印当前正在进行的任务列表以及需要执行的源文件?这将大大节省时间,而不是经常使用grep。同样使用vim ctags,您可以直接跳入代码中,在代码中保留TODO。我还没有尝试过它,但是插件看起来很有希望 编辑:我刚刚试

如何根据vim中的条件执行行的串联?

在vim中,如何在文件上运行以下逻辑: 如果行n没有以分号结尾,请将行n和n+1连接起来 我有一些文件破坏了SQL语句: 损坏的版本 所需版本 您可能需要运行它几次 编辑:这里有一个解决方案,可以解决在多个(>2)行上拆分的行: 注意:由于^\s*$无耻的“肮脏的”黑客行为,空行被保留,但被修剪 这会将文件上的每一行合并为一行,但您可以调整范围 :s:;:&\r:g 这取代了每一个;用一个;还有一条新线 HTH谢谢,但这几次对我来说可能会达到1000次。有没有办法实现自动化?这就是我

Vim 维姆:<;领导者>;键序列与正常模式映射相互干扰

我正在尝试为“cpp”文件类型定义映射: autocmd! FileType cpp map <leader>c echo "test c" autocmd! FileType cpp map <leader>r echo "test r" autocmd! FileType cpp map <leader>t echo "test t" 当我打开*.cpp文件时,只有一个映射按预期工作:“,t”序列使“echo”发生,但其他两个行为就像没有定义任何映射

vim change:x功能删除缓冲区而不是保存&;退出

我想在vim gui模式中将:x设置为delete buffer,因为我总是杀死整个gvim,这有点烦人。我知道如果有(“gui正在运行”)我可以专门设置gui问题,但不知道如何重新映射:x 提前谢谢 注:也许标签/术语remap是错误的,但我不知道正确的术语,这就是为什么谷歌没有提供任何帮助。这并不像看上去那么容易:map不适用于命令,并且:command仅接受以大写字母开头的命令。但是您可以使用:cabbrev: if has("gui_running") cabbrev x bd en

为什么vim在读取了我的.vimrc文件后读取系统zipPlugin.vim?

我有电话 set cpoptions+=$ 存档。然而根据 verbose set cpoptions output: cpoptions=aABceFs Last set from /usr/share/vim/vim73/plugin/zipPlugin.vim :它总是被zipPlugin.vim覆盖。我想知道为什么vim在读了我的.vimrc文件之后才读这些插件?有没有办法解决这个问题?因为vim总是在插件之前读取vimrc。这个加载序列是有意义的,因为在这种情况下,您可以在vim

如何使用Vim压缩文件?

我知道Vim支持编辑压缩文件(gzip、bzip2等)。但是,如何压缩和编写加载到Vim中的文本文件呢?我肯定有办法做到这一点,但我似乎不明白。您可以使用自动命令来完成 我建议阅读:hgzip示例 您可以使用自动命令来执行 我建议阅读:hgzip示例

以交互方式关闭多个vim缓冲区?

打开一个文本编辑器一段时间后,特别是在执行涉及大量文件的相当大的重构之后,最终会打开很多缓冲区 在emacs中,我已经习惯于使用杀死一些缓冲区,这基本上是在交互式yes/no会话中启动的,显示每个缓冲区的名称,并允许您按y或n键保留或删除每个缓冲区,直到所有缓冲区都显示给您(或取消命令) 有没有一种方法可以在vim中执行等效操作?我可以使用通配符,但文件名都是具有不同名称的ruby文件(基本上是我项目中的每个文件)。对我来说,最简单的事情就是关闭所有缓冲区并重新开始,但这并不是我真正想要的解决方

是否可以更改vim中卡舌的位置?

我想知道是否有办法改变标签的位置。有人能帮我吗?我希望将vim作为我最喜欢的ide:)查看帮助:tabm[ove]。基本上你可以做到: :tabm+N将当前选项卡N个位置向右移动。或者:tabm-N向左移动N个位置。Vim不是IDE,它是一个编辑器。不管你怎么努力,你都不会把它变成一个IDE 无论如何,请阅读:h tabmove: :tabmove 0 将当前选项卡移动到第一个位置 :tabmove 2 将当前选项卡移动到2选项卡之后 :tabmove 将当前选项卡移动到最后一个位置您所说

在Vim命令中使用当前目录

对于Haskell程序,我知道路径中的可执行文件名与当前目录名相同。现在我想创建一个映射,如下所示: :map <leader>rr :!curdir()<cr> :映射rr:!curdir() 但是,我知道的唯一命令是getcwd(),它提供了整个路径,而不仅仅是目录名 是否有一种只提取目录名称的简单方法?您可以使用以下方法: split(getcwd(), "/")[-1] 使用 或 :h在第二种情况下是必需的,因为:p发出尾随路径分隔符(因此:t选择的最后一个

是否可以在vim中的特定行上打开新选项卡?

我尝试了以下两种方法,但都没有成功 tabnew Foo.java +30 tabnew Foo.java:30 第一种情况给出错误消息,而Vim Open在第二种情况下将整个字符串解释为文件名。您需要稍微反转参数,请尝试以下操作: tabnew +30 Foo.java

Vim光标在新拆分窗口上的位置

默认行为将光标保持在原始拆分窗口上,因此我必须按ctrl+w hjkl切换到新窗口。每当我打开一个新的拆分窗格时,如何自动将vim设置为该值?当您:split filename时,新窗口(包含filename)将处于活动状态。只是当您将当前窗口一分为二时,您对“原始”内容的感知与Vim的行为不同 您可以通过以下选项影响Vim的行为(对于相同的缓冲区和不同的文件拆分): :set splitbelow :set splitright 如果只想更改相同缓冲区拆分的行为,则必须使用映射覆盖默认的s命

Vim 插入单字符重映射

我有一个在vim中插入单个字符的系统-我使用:nmap I\u r。 然而,出于某种原因,这似乎干扰了我对逃跑的重新映射。我用:imap kj重新映射了escape 每当我按下kj,vim都会在光标前插入一个,然后像按下空格一样改变。我不明白为什么这些东西会这样相互作用。有人能解释一下这件事吗?我很感激 这是我的全部视频 "general settings syntax on filetype plugin on set number set smd set ru "Leader let ma

在vimrc文件中的Vim插入模式下移动光标

在.vimrc中,如何在插入模式下使用以下关键功能 结束键、主键、箭头键、数字键 当我使用I命令从normal模式移动到insert模式时,光标向后移动1个字符。如何阻止它?(使用.vimrc命令或任何其他方式) 对于第二个问题:您可以使用a来切换到插入模式,而不是i 这会将光标置于插入模式,位于先前高亮显示的字符后面,而不是之前,就像我所做的那样 特殊钥匙通常是一系列转义码。与其映射丑陋的转义码,你再看一遍都不会明白,不如映射普通模式的等价物允许您在正常模式下运行单个命令并返回到插入模式 i

VIM:使用标记文件搜索下一个函数调用

可以从Vimscript访问VIM的标记文件吗 我有一个函数,它搜索类似于函数调用的内容(使用正则表达式)。 我想通过搜索标签文件来确认这些功能是否真的有效 注意,我寻找的是函数调用,而不是函数声明 [顺便说一句,这是用于导航Matlab代码的长文件]通过taglist()函数可以访问Vim从其标记文件中知道的标记 注意,标签文件本身找不到函数调用;但您似乎知道这一点,因为您正在谈论自己查找调用,并使用标记验证您找到的实际上是一个函数

vim打开后立即运行搜索命令?

gvim打开后是否可以立即运行搜索命令 我正在考虑使用类似于 vim $(grep -rl 'refreshents' .) 然后在第一个缓冲区中搜索第一个结果。为什么不直接从命令行执行呢 $ vim myfile.java +/pattern 发件人: +/{pat}光标将位于正在编辑的第一个文件中包含“pat”的第一行 为什么不直接从命令行执行呢 $ vim myfile.java +/pattern 发件人: +/{pat}光标将位于正在编辑的第一个文件中包含“pat”的第一行

如何使用comments结构为Vim编写foldexpr?

是否可以构造一个foldexpr,以检测以下匹配项\n\n“\s[a-Z][a-Z].\n作为第一级折叠的开始,而这些匹配项\n”\s[a-Z][a-Z].\n作为第二级折叠的开始?当然,最接近的\n\n\n将标记第一级折叠的结束,然后\n\n将关闭第二级折叠 还是我遗漏了什么 (我当然知道{{{标记,我在文件中添加额外标记似乎不对…您将无法在一行程序中完成此操作(至少,不容易或不清楚)。您需要编写一个函数 您的函数将无法使用单个getline()和正则表达式比较,因为getline()只返回一

Vim 使用js beautify时避免设置标记,同时记住位置

我在Vim中创建了一个映射,其中: 创建标记(mq) 通过几个选项调用js美化 跳回标记('q) 删除标记(mq) 这应该是发生在一个按键,它的工作原理很好;但是,标记q在一段时间后(仅几秒钟)再次出现 autocmd文件类型javascript noremap mq:%!js美化-S2-j-q-f-'qmqzz 我猜我执行连续命令的方式有问题,但不确定是什么 也许有一个更好的解决方案,我不知道 谢谢 mq不会删除标记,它只是用当前位置覆盖标记。要删除要使用的标记,请使用:delmarks q

特定位置文件的vim交换文件的特殊路径

由于我的配置,vim将交换文件存储在与已编辑文件相同的目录中。一般来说,这是可以的,但不在文件夹~/ftp\u mount(以及下面的所有目录)中。在这个目录中,我安装了一个ftp服务器 与 :set dir=/some/path 可以更改vim存储交换文件的位置()。是否可以将此配置限制为~/ftp\u mount和下面的所有目录?在要应用此设置的目录上使用autocmd(~/ftp\u mount)如何 禁用交换文件、设置目录并重新启用它似乎是可行的: autocmd BufNewFil

VIM:查找和替换一个单词的前N个匹配项

我正在编辑一个文件,我只想用另一个单词更改一个特定的单词,但只更改前N次出现的单词。我尝试了多个命令 N:s/word/newword/ :%s/word/newword/count 还有我在谷歌上能找到的其他命令。但它们都不起作用 最好使用EDIT::Vim命令。但是也可以使用Vim脚本。我在vim脚本编写方面没有任何经验。我不确定是否指定前N个实例,但我经常使用以下命令: :%s/word/newword/gc 然后,Vim要求确认每次出现的word,以便您可以有选择地更改某些内容,但不能

Vim 光标线下的前景色错误

我最近在我的.vimrc: set cursorline hi CursorLine ctermbg=54 cterm=NONE 但是,它似乎不能很好地与语法突出显示配合使用。比如说, 正如您在光标线上看到的,字符串文字的颜色比光标线外的颜色要深一些,这在我的眼睛里是非常困难的,因为我的背景方案。(当然,我可以更改我的背景方案来解决这个问题,但我不想这样做。)我更愿意找到办法,使光标线的语法突出显示方案与光标线下的语法突出显示方案相同,但我不知道怎么做。我甚至不知道它为什么不同,因为据我所知

Vim 如何更改NERDTree中边框的颜色?

如何将NERDTree中边框的颜色更改为透明?这应该相当简单。NERDTree插件在全球范围内获得其颜色设置。因此,在.vimrc文件中添加类似的内容应该可以做到: highlight VertSplit ctermbg=NONE highlight VertSplit ctermfg=NONE 只是提醒一下-这将更改使用VertSplit的所有设置,如拆分窗口等。如果这不是您想要的,那么可能尝试仅禁用背景(ctermbg)。这些也是终端版本的命令,因此如果您有gui,那么它将是guifg=N

如何创建包含数字(0-9)的Vim键绑定?

我想创建一个键绑定,用于将折叠级别设置为特定的数字。ex命令是: :set foldlevel=n 其中n是折叠级别。我想绑定z加上一个数字来设置折叠级别。我的目标是调用(假设我的leader键是\): 它应该反过来调用这个命令: :set foldlevel=3 有可能像这样在键绑定中包含数字吗?如果是这样的话,是如何做到的?这应该可以做到 for key in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] exe "nmap <silent> <le

对于外部命令,silent关键字在vim中不工作

我正在编写一个vimscript,它以静默方式执行lgrep。但是,silent关键字对于运行的任何外部命令都不起作用lmake、lgrep等仍然转储其输出,尽管在命令之前使用了silent关键字 如何抑制输出 例如: :silent lgrep -R a * 上述命令将转储所有结果,强制用户按enter键。我无法在我的机器上重现他的问题,在bash/zsh/tmux/screen/terminal/iterm/vim 7.3/vim 7.4/任何东西中。任何提示都将不胜感激 更新: 我仍然不

如何插入Unicode字符U+;2611英寸gvim

当我尝试输入此Unicode字符时:☑(U+2611)在vim中,使用如下命令:^Vu2611(这意味着按ctrl+V,然后在插入模式中键入u2611),vim会以某种方式将其拆分为两个字符:&(26)和^Q(11) 当我尝试插入其他类型的字符时没有任何问题,比如□ (U+a1f5) 似乎Vim在读取了26(表示字符“&”)后立即停止了解析 那么,如何在Vim中插入这种Unicode字符(我已经尝试将其粘贴到Vim中,但它不起作用)? 请帮忙 为了处理Unicode字符,Vim必须使用能够表示这

Vim 如何在命令模式下使用Tab创建地图组合?

我想创建一个组合键,复制光标下的文本,打开:find命令,拖动单词,然后按Tab键自动完成列表中的第一个文件名,因此(99%的情况下)我只需按enter键即可打开文件 map <Leader>o yw:find <C-R>"<Tab> mapoyw:find” 但是,当我按下o时,我得到的是:在命令行中查找文件名^I。我如何使它的反应与我自己按下键时的反应相同?gf(goto file)命令应该执行与映射相同的操作。这将打开名称位于光标下方或后面的文件 如

windows 7上cmd或ConEmu或console2、cygwin终端内的vim中的退格不起作用

在插入模式下点击单个退格字符需要时间删除单个字符。如果我快速键入2个退格字符,则该行中的文本将高亮显示,甚至:set hlsearch未删除突出显示的文本 我尝试了:set backspace=2,但仍然存在相同的问题 此问题还有其他解决方法吗?您可能有以backspace开头的宏。阅读:help timeout了解更多信息。我没有为timeout设置任何宏,但同时我不确定是否有插件正在这样做。如果是这种情况,gvim也应该有这种行为,但事实并非如此,内部gvim退格工作正常。你不知道你的插件在

Vim 维姆,用xclip猛拉,摆脱逃跑的角色

我正在使用vim通过ssh编辑多个系统上的文件,其中一些系统有或没有编译的-clipboard选项。因此,我一直在尝试使用xclip将文本的某些部分复制到X剪贴板中,然后通过ssh将其迅速传回我的机器,在那里我可以使用它 现在,我知道了,我可以用 :'<,'>w !xclip<CR><CR> 在我的xclip中,我得到了以下信息——换行符的逃避仍然存在 Plugin 'vim-scripts/buftabs'\ Plugin 'jlanzarotta/buf

Vim:选择文件后保持位置列表窗口打开

我需要完全相反的行为。我的观察结果是,在位置列表窗口中的一行上按enter,窗口将关闭,主窗口将显示所选文件的内容。相反,quickfix窗口不具有此行为,即在选择后仍保持打开状态 我已经检查了我的autocmd,对于位置列表或快速修复列表没有特殊处理 示例-:lgrep hi*用于填充位置列表lopen打开位置列表窗口。按任意一行的enter。Syntastic和位置列表窗口 默认情况下,在不存在错误时关闭“位置列表”窗口。因此,如果您使用类似于:lgrep的方法,而该方法不会将任何结果标记为

vim中替代表达式的自动化

在vim中自动化替代命令的好方法是什么 假设我有这样的东西: s/foo/bar/g 除了要复杂得多,我想在选定的范围内运行它,而不需要 必须键入替换命令吗 如何保存替换命令并给它一个简短方便的名称,以便调用它?您可以创建一个支持范围的函数,并在该函数中执行替换。还可以创建一个自定义命令来调用范围为的函数 然而,我认为最简单的方法是在vimrc文件中创建一个abbrev: cab RR s/foo/bar/g 因此,当您选择行或在命令行给定的范围(如3,5或%…)中按RR时,s/foo/ba

如何使用vi/vim中的autocmd自动更新文件头中的文件路径?

我在my.vimrc中有一个函数,它会自动更新我当前编辑的文件,并使用最后一次“保存”(:w)的时间戳(修改) 我还想更新文件名和文件路径。我有一个autocmd可以更新文件名(通过expand(“%”)。至于文件路径,根据我在文档中读到的内容,使用expand(“%:p:h”)应该允许我插入路径(不包括文件名),但它不起作用 任何人都可以告诉我如何在头文件中插入文件路径 我希望更新的文件头示例: Modified: November 13 2016 Filename: myfile Filep

Vim接收Cscope命令而不是ctags?

我已安装ctags,但未安装cscope 当我按下Ctrl-]时,vim正确地将我带到定义。 但是,当我按下Ctrl-t时,它会返回错误——“E567:无cscope连接” vim——版本中有+cscope。 我尝试在我的vimrc中设置“set nocst”,但没有效果 如果您已经安装了CTAG,并且您正试图使用大纲查看器来查看代码,我建议您使用。它只需CTAG就可以很好地工作 如果您使用的是Vundle,请使用 插件“majutsushi/tagbar”试试: :set csto=1 从文

同时支持python和xterm_剪贴板的Vim发行版

我将Vim与mono结合用于ASP.NET开发。OmniSharp插件需要python 2支持 这表明vim.nox-py2分布。但是vim.nox-py2不包括系统剪贴板支持(-xterm_clipboard),我认为这是非常必要的 vim.gtk3发行版确实包括对系统剪贴板(+xterm_剪贴板)的支持,但它不支持python 2 有没有办法让Vim同时支持python2和Ubuntu 16.04中的系统剪贴板 +xterm_剪贴板不提供“系统剪贴板支持”;它是+剪贴板。您可以通过任何vim

删除缓冲区时,VIM能否自动关闭NERDTree?

问题: 在VIM中,打开NERDTree 选择一个文件并在新缓冲区中打开它(输入) 对缓冲区做一些工作并保存它 使用:bd删除缓冲区 现在NERDTree占据了整个窗口-这本身不是问题,但是 使用:bnext转到下一个缓冲区 继续工作 现在,按Ctrl-N再次尝试打开NERDTree 你看,NERDTree保持“最大化”,你必须调整它的大小 我试图解决这个问题: 我的方法如标题所述:删除缓冲区时自动关闭NERDTree,然后在输入另一个缓冲区时重新打开它 function! g:Clos

Vim g++致命错误没有这样的文件或目录 我使用C++中的to程序,但是当我在编辑器上打开.cpp文件时,键入:g++-std=C++17 file.cpp-o文件我收到以下错误: 见以下附件: C:\Windows\system32\cmd.exe/cg++-std=C++17 file.cpp-o文件 g++:错误:file.cpp:没有这样的文件或目录 g++:致命错误:没有输入文件 编译终止

这是和vim有关,还是和我的命令有关 提前感谢。很遗憾,您使用的gcc mingw没有正确配置gnumake:让$CXXFLAGS='-std=c++17-Wall-Werror'+make%谢谢,但是,制作完程序后如何运行?我如何设置热键? " to do once :let &makeprg='g++ -std=c++17 -Wall -Werror % -o %<' " to execute each time to compile :make :copen " to n

如何在vim/nerdtree中访问文件?

我正试图过渡到vim,但我很难将pycharm中的一些功能映射到vim 第一个问题是如何直接转到文件路径。在pycharm中,我相信是cmd shift P。您将键入文件路径,它将带您到达那里。我想也有自动完成的 我知道我想访问一个.css文件。所以我本能地开始键入:cmd shift p.css,这将返回.css文件 我如何在vim中做到这一点 谢谢 :edit是编辑现有文件的最基本命令 :edit <your file name> :编辑 要获取以“.css”结尾的所有文件的

为什么同一个.md文件在vim中打开时缩进会被破坏,而在Typora中打开时缩进会被破坏?

我是新来的,正在学习用vim和.md格式写笔记 在vim中打开时,显示: command1 comment1 command2 comment2 command3 comment3 “comment”是缩进,tabstop=4,这意味着在“command”和“comment”之间插入了大量的“空格” 在Typora中打开此.md文件时,“comment”的缩进被破坏。 我猜当.md文件从HTML或PDF显示时,缩进也会被破坏 在vim中编辑.md(markdown)文件

防止使用B或B跳到vim中的前一行

我在SO上找到了下面的代码,它非常适合使用E跳转到单词并停在行的末尾,如下所示:nnoremap E getline('.)[col('.)-1:=~#'\s\s'?'E':(col('.')+1==col('g')?'E':'$) 但我最近才开始涉足vimscripts,无法让它在b/b的倒退中发挥作用。 我尝试过这样做,但没有成功,因为它没有在生产线开始时停止: nnoremap <expr> B getline('.')[col('.') + 1:] =~# '\S\s' ?

在插入模式下键入URL时,Vim将已键入的字符替换为~

我正在编辑我的vim wiki,当我键入url时,它似乎会删除已经键入的文本(请参阅屏幕广播) 这可能是什么原因造成的?看起来它只是在自动缩短它。试着复制它,看看你得到了什么。至于它为什么这样做,idk.hmm,它为什么会这样做,这很令人困惑,我是vimwiki的新手,发现它非常令人困惑,事实证明它确实在缩短,并且有一个选项可以禁用它

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