vim向内和向外缩进代码块

我正在使用mvim。我正在尝试映射键,以便可以直观地选择元素,然后可以向内或向外缩进代码。但是,在每次击键后进行外部工作时,底部多选择一行。解决办法是什么 " Ctrl-x - move the block of visually selected code one tab right and keep visual mode alive " Ctrl-z moves the data in opposite direction " Usage : shift v and select mult

Vim 记事本++;例如;“多重编辑”;在维姆?

我正在从Notepad++切换到Vim作为我的主文本编辑器 在记事本++中,按住Ctrl键并单击文本中的任意位置可以有多个光标,因此如果键入,文本将显示在多个位置 在Vim中可能吗?类似于在视觉模式下选择多行后插入,但可以在文本中的任何位置使用光标 这是一个我很少使用的特性,也是很容易避免的;我只是好奇,因为这是我在Vim中唯一找不到替代品的产品。没有这种内置功能 我建议使用一个重复命令的函数(例如,最后重复) 更改命令)在给定标记的位置。标记和命令都是 指定为字符串参数。方式中指定的标记以常规

VIM:更精确的C/C++;代码解析解决方案?

Pre: 我已经在VIM工作一年了。很多很棒的东西:组合、脚本。每当我在另一个编辑器中编辑某些内容时,如果没有VIM的导航,我会感觉迟钝/不舒服 问题: 最让我困扰的是使用现有工具(CTAG、cscope)进行源代码导航。通常,ctags找不到变量的声明,cscope(与ctags相反)查找具有相同变量名的所有定义。与调用树导航、查找前向声明以及单个类定义等一样疯狂。 与Eclipse中的MS Intellisense、Visual Assist甚至源代码导航相比,Exuberant标记/csc

Vim NERDTreeQuitOnOpen似乎不适用于NERDTree书签

我已经让NERDTreeQuitOnOpen=1出现在我的_vimrc窗口中,它可以很好地用于文件上的NERDTree-o。但是,当我在文件的书签上使用NERDTree-o时,文件在主窗口中打开,焦点切换到它,但NERDTree窗口保持打开状态。如何修复此问题,使书签的行为与NERDTree文件系统树中普通文件的行为相同

Windows上的Vim开始显示^M个字符

我在运行PowerShell 2.0版的Windows 7上 我使用以下PowerShell代码(来自此答案:)修改我的PowerShell配置文件: "`nNew-Alias which get-command" | add-content $profile 正如所料,它在我的个人资料中添加了有问题的一行,但之后,我的Vim会话开始在每行末尾显示^M个字符。很奇怪!有没有线索说明是什么引起的以及如何修复?我尝试在Vim中设置fileformat=dos,但没有任何效果 以下是我的Vim版本信

vim发送到终端的奇怪逃逸序列

当使用墨水罐方案时,vim似乎会向底层终端发送几个奇怪的(即未记录的)转义序列。我无法将它们与任何VT-100或ANSI转义码匹配;有人知道这些序列是什么吗 ^[[3231m ^[[4232m ^[[3130m 这些序列在我负责的终端仿真器中显示为无效令牌,如果我能找到这些序列的适当文档,我想添加对这些序列的支持 在受影响的系统上设置以下与终端相关的环境变量: TERM=xterm COLORTERM= 我没有尝试过这两个变量的任何其他设置 vim是7.2版,但我已经尝试过具有相同效果的新版

Vim 在状态行中显示当前列

如何在状态行中显示当前列 读了:h statusline之后,我发现%c看起来很有希望,但很重要 字节,而不是字符。我想让这个列用字符分隔, 不是字节%v在没有使用选项卡的情况下工作。这里有一个例子: 123 56789 “äå µåäö” ^ this is a tab 我想显示第一行显示的号码。以下作品 用于第一列到第三列,直到选项卡开始起作用 :set statusline=%v 以下内容仅适用于第一行,但不适用于第二行 :set statusline=%c 在上述示例中,如果

VIM grep与shellescape(扩展(“cWORD”)一起使用)赢得了';行不通

我正在跟随Steve Losh的“艰苦学习vimscript” 我在第32章中尝试实现以下grep重新映射: :nnoremap <leader>g :exe "grep -R " . shellescape(expand("<cWORD>")) . " ."<cr> :nnoremap g:exe“grep-R”。shellescape(展开(“”)。" ." 目标是将单词放在当前文件夹的光标下 我对这个重新映射有一个非常奇怪的问题,只有在一行的

vim:部分LaTeX文件中的拼写检查

我使用习题集类来输入我的习题集。我经常有一个main.tex文件,看起来像下面这样 \documentclass{problemset} \begin{document} \input{problem1} \end{document} 对于每个问题,我通常有不同的文件。例如,problem1.tex可能如下所示 \begin{problem} there is a spelling errrrrrrror here \end{problem} 我希望vim检测problem1.tex中

使用gVim时释放终端

有没有一种方法可以让我的终端不再运行gVim进程而退出gVim,这样我就可以继续使用终端了?我希望能够 做一些类似于我对emacs所做的事情。对于emacs,我可以使用emacs[file]命令让进程在终端上运行,也可以使用runemacs[file]命令让终端保持空闲 我使用以下命令启动gVim: gvim [file] 然后终端挂起,直到I:quitgVim。当我在网上搜索这个问题的答案时,人们建议最好使用ctrl-z暂停vim进程,然后使用fg返回。但是,在命令行和gVim模式下,这对我

使用ctrl+shift+箭头键在VIM中选择word

现在,我的配置是: 还有两行: source $VIMRUNTIME/mswin.vim behave mswin 我的示例文本是: foo.bar 如何使用Ctrl+Shift+Right选择foo,然后选择.bar 酒吧,然后是福。使用Ctrl+Shift+Left Ctrl+Lelf和Ctrl+Right在点字符上停止,就像传统的编辑器一样,但当我使用Ctrl+Shift+箭头时,它只在空白处停止 vim版本:7.4 操作系统:ubuntu 14.04选择模式将由:behave msw

stty擦除后vim退格不工作^?

由于vim中的backspace给了我^?而不是作为backspace工作,因此我在.cshrc中添加了以下内容以使其工作: stty erase ^? 现在的问题是,当我从linux机器上打开gnome终端时,退格在vim中仍然不起作用。但是,如果我在shell上运行tcsh,并重新打开vim,则backspace确实起作用。如果我在已经打开的终端中打开gnome终端选项卡,或者从运行tcsh的已经打开的终端打开新的终端窗口,我看不到问题。有人能告诉我可能发生了什么吗?您的$TERM设置正确

从GVIM复制到Windows不起作用

我通过vnc在linux机器上运行gvim和vim。GVIM为每个文件打开一个单独的显示终端。我可以在gvim和vim之间复制。另外,从vim到windows。但是从gvim复制到windows不起作用 我可以通过选择文本并使用右键单击粘贴来复制。不太喜欢。vimrc专家,如果有任何建议,我将不胜感激。这不是您的VNC阻止了本地和远程机器的复制/粘贴吗?我以前就见过这种行为 然而,在VIM中,我会说这是因为您已经将鼠标设置为all:set mouse=a,因此您失去了操作系统的复制/粘贴功能,因

vim快速获取最后一组单引号

所以我正在学习vim。所以,如果我想得到最后一组单引号,我将如何有效地做到这一点 Plug 'OrangeT/vim-csharp', { 'for': 'csharp' } 以下是我想到的方法,但我相信有一种更快的方法 打w几次 做f'并重复几次 G以到达文件末尾(不确定是否需要) $以到达行尾 ?”反向搜索“ n查找下一个事件(从第二个到最后一个) 更新:@minitech在上面的评论中提出了一个好方法另一种方法:$B $转到行的末尾 B跳到上一个“单词”的开头 可能有一些优雅的方式,但

vim通过putty ssh连接选择缓冲区到剪贴板

我正试着去想这个问题,但到目前为止我还不知道怎么做 我通过ssh连接到我的服务器,我想知道如何将行从可视模式直接复制到剪贴板。您可以在其中选择寄存器,您可以复制任何内容。可用寄存器列表可通过:registers获得。剪贴板寄存器通常为“*”。因此,如果要复制此寄存器中的任何内容,只需在寄存器前面加上yank命令的前缀,即:“*y。步骤如下: 进入可视模式(Shift-v例如`) 选择您的线(移动) 键入“*y 要使副本与putty一起工作,必须启用X-forwarding、vf

如何使用.vimrc文件在vim文件的开头插入文本? 最近我一直在使用VIM编写C++程序。

这是我经常添加到我创建的文件中的一段代码 #include <cstdio> int main() { return 0; } #包括 int main() { 返回0; } 每次写这篇文章对我来说都有点烦人,特别是因为我每天都在使用它 是否有任何方法可以使用.vimrc文件自动执行此操作 将其放入您的.vimrc: " If the file is new, load a template if we have one, " delete the extra new

Vim E185:找不到颜色方案*

我一直在自定义我的vimrc文件,但由于某些原因,没有配色方案工作。每当我尝试更改配色方案时,它都会让我: E185: Cannot find color scheme '*' 我检查了color文件夹,以确保我确实有颜色,而且我有。例如,color文件夹中的第一项是blue.vim,但当我将colorscheme blue放入vimrc时,它只给出 E185: Cannot find color scheme 'blue' 当我启动Vim时,配色方案不适用。我还尝试在Vim中更改color

使用Vim发表评论,这些评论通常与';go fmt';工具

Golang有一个名为“gofmt”的工具,可以格式化代码。我使用的是vimgo插件,每次保存文件时都会触发“gofmt”工具 Golang使用制表符进行缩进。在以下示例中,我将选项卡标记为[] 我遇到了一个问题: 我有以下代码: func main() { [ ]if true { [ ][ ]do.Something() [ ]} } 我需要注释if子句。 因此,如果我像下面这样评论它(我使用的是nerd commenter): Gofmt将其格式化为: func main() {

Latex/VIM:更改所有$$..$$要\开始{等式}\结束{方程}

我收到了一个100页的Latex文档,其中包含$$…$$之间的所有方程式,我需要将它们全部更改为\begin{equation}…\end{equation} 在Latex(一些内置功能)或Vim中是否有一些聪明的方法可以做到这一点 在维姆,我在想 或者:用dbf替换abc的方法,其中所有字母代表模式 或者:将所有$$替换为\begin{equation},然后每秒将\begin{equation}替换为\end{equation} 不过,我也不知道如何做到这一点 :%s/\$\$\(\_.\{

Vim-如何更改在选项卡中打开的文件的名称样式

当我在vim的选项卡中打开多个文件时,它会截断它们顶部的文件名。此外,它从一开始就截断它们。例如: vim -p convert_places_for_dynamo.py es_sculptures_upload.py google_places.py dyn_sculptures_upload.py 选项卡显示为: places_for_dynamo.py| sculptures_upload.py| google_places.py| sculptures_upload.py 是否有一种

Vim:在插入模式下保持Alt时的临时正常模式

我想知道是否有办法使Alt(或另一个键)像Ctrl-o一样工作,但只要按下该键。例如,如果您处于插入模式,想向下移动10行,向前移动2个字,可以按住Alt,按10jww,然后释放Alt键。它比每次移动前按Ctrl-o键或退出插入模式并再次进入插入模式快得多 在按住Alt的同时,我重新映射以使用插入模式下的主移动键: inoremap <A-h> <C-o>h inoremap <A-j> <C-o>j inoremap <A-k> &l

显示整个vim线

假设我将整个jquery函数粘贴到一个文件中(作为一个示例..我知道这不实用,但只是为了示例) 当你试图滚动过去,它会显示它的一行,然后“跳转”到它下面的代码。我希望它表现得像平常一样。。如果wordwrap是打开的,那么当我滚动它时,它只是正常地滚动一条大的长线,而不是尝试在它之前和之后跳转,然后用大量的空白填充它我不是100%肯定我理解你的问题,但是如果你想能够使用正常的方向键(j和k)要向上和向下导航包装行而不是整行代码,可以按如下方式重新映射键: map j gj map k gk 有

在vim中给单词加下划线,但不改变其颜色

我想在vim中对一些语法组使用带下划线的文本。一个简单的例子是搜索组: :highlight Search cterm=underline 但是,当我这样做时,所有搜索匹配也会将其颜色更改为白色。我可以在它们下面画线,但保留它们原来的颜色吗?简单。对于新的突出显示组,只需取消bg/fg定义。要覆盖现有组,请使用特殊颜色NONE: :highlight Search guibg=NONE guifg=NONE gui=underline 您需要使用ctermfg、ctermbg和cterm来影

brew使用RVM(Ruby 1.9.3)、MacVim和Command-T在终端中安装了Vim

我正在使用RVM(1.17.7)和Ruby 1.9.3p362。从长远来看,我想在带有Tmux的终端中转到Vim。我正在尝试学习如何安装和运行我选择的插件,而不是默认为Janus,只是尝试学习所有这些,而不是成为一个货运狂热的程序员 当Ruby设置为1.9.3时,我安装了Command-T的Vim git克隆(我使用的是病原体)。。。使用Vim和Command-T在终端中一切都很好。当我运行时:ruby将ruby_版本放在终端Vim中,它返回1.9.3。Command-T也可以正常工作 当我尝试

Vim 维姆:你如何让netrw打开https链接?

在Vim中,我可以打开带有gf的http:链接。但是https:上的gf链接似乎不起作用。(Vim只是创建了一个链接到一个长文件名的新缓冲区。)是否有一些配置设置我可以调整以使这项工作正常进行?没有,但请随时修复netrw使之成为可能!这可能并不难——快速检查时,您需要修改plugin/netrwPlugin.vim中的autocmd模式以匹配https://*,然后: 方案A 在autoload/netrw.vim中,为https添加一个新的netrw_方法编号,在NetRwMethod中添加

在vim中,有没有重新绑定的方法*&引用;突出显示当前单词,而不前进到下一个?

我经常使用*来突出显示当前单词的所有实例,而它前进到下一个单词这一事实非常令人讨厌。我想禁用这个行为,因为我知道如果我真的需要提升,我可以始终使用“n” 有什么见解吗 编辑:我应该补充一点,我希望不惜一切代价避免屏幕重画,因为它会分散视觉注意力。我不能给出确切的答案,但会告诉您必须添加到。vimrc中,以便在Vim处于空闲状态时只突出显示光标下的单词 无需任何键重新映射即可工作…您可以重新映射以返回: nnoremap * '*N' (但这会重新绘制屏幕)试试看。我觉得它很有用。最有趣的是,你

如何控制Vim quickfix中的错误输出格式?

我接受了这个脚本,并对其进行了修改,通过在调用pylint的命令行中添加-include id\y并更改errorformat行,从而显示错误号(例如,不仅是C或R,而且是C0301或R0202) CompilerSet efm=%+P[%f],%t:\ %#%l:%m,%Z,%+IYour\ code%m,%Z,%-G%.%# 到 很简单。但是在错误输出中,我得到的是c301,而不是c301。这是一个小问题,但我仍然感到困惑——似乎没有办法正确显示这种错误标记。我是不是遗漏了什么 在写作过程

vim上有cit、dit、yit(更改、删除、拖动内部标记)。。。是否有类似pit(粘贴在标签内)的内容

使用vim,我习惯于在编辑html/xml文件时使用cit、dit、yit等运动命令。我喜欢。使用此命令后,情况会更糟,因为我只需一次击键即可重复所做的操作 我想知道是否已经有类似于pit paste inside tag的东西可用,可以删除tag内部的内容并粘贴我想要的内容,例如+register和make。可以像cit一样使用,或者如果我需要为此创建映射,则可以使用。否,但您可以直观地选择并放置文本: vitp 英戈·卡拉特(Ingo-Karat)的优秀作品很可能就是你想要的 它定义gr对

Vim 命令T在先前打开的缓冲区中打开文件

我使用的是Carlhuda的Janus MacVim,我想知道是否有办法调整Command-T以只打开一次文件(缓冲区),而不是将同一缓冲区分成多个部分 例如:假设您的目录/项目有两个文件:A.txt和B.txt 1) Cmd T,然后选择A.txt。 2) 使用A.txt,然后使用Cmd T,使用Ctrl V拆分B.txt。 3) 使用B.txt,然后需要切换回A:Cmd T,A.txt。当前命令T将打开一个缓冲区到当前拆分,或者创建一个新的A拆分。我想要的是,以前打开的A缓冲区将再次处于活动

Vim 如何知道命令I';我一直在打字?

我正在使用gVim,我想知道是否有办法查看我键入的命令 例如,当我按下视觉模式(v)时,我得到了一条信息--visual--,但我不知道到目前为止我一直在按哪个字母 是否有办法永久查看我键入的字符/命令?您可以使用此设置: :set showcmd 键入:帮助“showcmd”阅读更多信息。检查主目录中的.viminfo文件 除其他外,这将包含从最新到最旧的您最近键入的命令的历史记录。您可以设置: alias vim=“vim-W~/。上次按下vim会话键” 但是这个文件只有在退出vim时才

为什么Vim文件路径自动完成(CTRL-X CTRL-F)会在路径包含方括号后立即停止?

我不知道如何对包含方括号的路径使用CTRL-X CTRL-F进行自动完成。例如/home/matt/Mail/Imap/Imap.googlemail.com/[Gmail].sbd/。 自动完成在目录[Gmail].sbd之后停止。方括号似乎阻碍了进一步的路径完成。如何防止这种行为?这是错误还是配置问题?我在vim文档中找不到答案。谢谢。请键入:设置isfname?以检查它是否包含[,] 如果没有,您应该键入:设置isfname+=[,]来添加它们。我有isfname=@,48-57,/,,-

将蟒蛇蛇蛇添加到vim电源线中的MacVim状态线

我想使用MacVim添加到 有一个问题讨论了这一点,但尽管问题已经解决,但决议并不明确 做这件事的最佳方式是什么?正如github问题所讨论的,目前电力线的定制有点像黑客。您必须像用户那样编辑源代码。我希望有人能帮你找到答案!正如github问题所讨论的,目前电力线的定制有点像黑客。您必须像用户那样编辑源代码。我希望有人能帮你找到答案!

如何在vim中标记自定义命令的可视选择?

我想这样做:我选择一段文本,然后按Ctrl-B,所选文本被**或我选择的其他符号包围。我在想,如果我能以某种方式标记选择的开始和结束位置,我可以将Ctrl-B映射到视觉模式中的某个组合键,该组合键在这些标记上移动,并放置所需的文本 我该怎么做呢?无需定义自己的映射-Tim Pope的映射就是为这种事情而设计的!该插件提供了映射,可以轻松地删除、更改和添加文本 在您的情况下,在视觉模式下进行选择后,只需键入S*,代码就会被星号包围 环绕命令可用于标准运动,也可用于正常模式。如果要更改周围的字符(例

如何选择NERDTree窗口Vim关注的内容取决于是否传递了文件

目前,我的.vimrc中有以下内容: au VimEnter * NERDTree au BufWinEnter * NERDTreeMirror au BufNew * wincmd l 我相信当我打开Vim时,以及当我使用插件打开一个新选项卡时,会启动NERDTree。当前,当我使用 vim 在命令行中,光标位于NERDTree中,我可以随时浏览文件,这很好。然而,当我使用 vim my-file.txt 光标保留在NERDTree窗口中。我知道我可以将此添加到我的.vimrc中:

Vim 如何在目录中所有文件的头中插入一行?

我在一个目录中有多个文件。我想在文件的开头插入同一行-类似于: #!/usr/bin/python #author: Alastor 我如何做到这一点?我想vim可能有一些东西,但我对其他选择持开放态度。我还可以在嵌套文件夹中递归执行此操作吗 还有,有没有办法获取文件名并将其放入其中,即: #!/usr/bin/python #author: Alastor #filename: asdf.py 尝试使用find和sed 静态标题 find -type f -name '*.py' -exe

Vim 如何在Python中突出显示成员变量?

我正在尝试为Python设置某种类型的语法高亮显示 我希望self和cls像注释一样突出显示。 我希望成员变量像函数一样高亮显示 例如,如果普通文本为白色,注释为灰色,函数为红色: 应该是self(灰色)(白色)\u成员(红色) 应该是self(灰色)(白色)\u成员(红色).other.method()(白色) 应该是self(灰色)\u method()(白色) 我尝试复制和修改装饰器的语法,因为它们看起来很相似,但没有成功。我也参加了一场比赛,但他们非常激烈。你知道我该怎么做吗 编辑: 我

Vim TCL日志记录-日志文件中不需要的行

在这里可以看到“cat tcl.log”的输出: 这就是VIM中的外观: ^MDiscovered serial numbers for slot 1 olt 1: ^MsernoID Vendor Serial Number sernoID Vendor Serial Number ^M<SPACE> for next page, <CR> for next line, A for all, Q to quit^H ^H^H ^H^... 5

在vim中为C文件维护几种格式约定的最佳方法是什么?

例如,需要一套特定的规则,但对于我的项目,我通常更喜欢不同的规则 如果能为不同的项目提供多个命名的格式化选项组,并在它们之间轻松切换而无需修改,那就太好了。vimrcVim没有项目的概念,因此它没有自己的方式来做这件事。但不要因此而失望。我们仍然可以实现这样的目标 设置exrc 这允许读取当前目录中的.vimrc、.exrc和.gvimrc。但是,这意味着您必须使用正确的当前工作目录打开vim,并且在同一vim实例中打开另一个项目不会切换您的设置。有关更多信息,请参见:h'exrc' 滚动您自己

如何将gvim配置为在搜索跨越EOF时闪烁

我正在使用wrapscan开关,以启用交叉EOF的搜索,并从文件的开头开始,但我想得到一个EOF交叉发生的指示。我知道,在窗口底部有一条消息“搜索点击底部,继续在顶部”,但它不够直观 是否可以通过搜索将gvim配置为在EOF穿越时闪烁(可视铃声) 非常感谢 搜索包装中没有钩子,因此您必须至少覆盖n和n命令(如果您希望完全一致,则可能覆盖大多数搜索命令) 内置功能只是通过切换colorscheme或直接操作WarningMsghighlight组(加载colorscheme后)来更改消息的突出显示

使用vimdiff合并更改

在我的例子中,我有两个文件file1和file2。使用vimdiff,我希望合并以下更改: 在第一个区别中,将文件1中的行置于文件2中的行之上。这意味着文件2中的清单2和清单2之间的差异应该是清单2,然后是合并文件中的清单2 相反的情况下,在另一个变化 快照如下所示 我们如何使用vimdiff实现这一点?您可以使用Ctrlww在两个窗口之间来回切换。您可以从一个窗口复制Ctrlww,然后粘贴到另一个窗口中。解决差异时,高光将发生变化并消失 看看这个。你可以在窗口之间切换,复制粘贴来解决差异,正

vim撤消连接和编程插入

对于vimscript插件 我正在尝试让:undojoin | append(1,行列表)工作 问题在于,我希望与用户操作结合的操作由以下调用: autocmd!CursorMovedI swoopBuf:调用s:cursorMoved() 所以Vim不会合并操作,因为在“内置mecanism”中,在退出模式时会设计一个undoblock 有人知道我应该采取什么方法吗?你想要什么?禁用撤消一次?是的,但我不能使用set ul=-1方法,因为我想保留历史记录

如何判断调用vim时是否使用了文件名?

如果启动vim来编辑现有文件或新的空缓冲区,我想在my.vimrc中添加一个开关来做一件事。换句话说,我想知道命令行调用是否如下所示: > vim 或者这个: > vim myfile.txt 是否有可以检查的标志、参数或文件列表来获取此信息?您可能需要检查ifeq(argc(),0) 您可能需要检查ifeq(argc(),0) 您可能需要检查ifeq(argc(),0) 您可能需要检查ifeq(argc(),0) 让我猜猜:你想自动打开NERDTree吗?让我猜猜:你想自动打开

仅在键入时匹配vim括号

在emacs中,当您键入时,它将显示匹配的括号,但是有一个单独的设置来高亮显示光标所在的匹配括号。有什么东西我可以写在.vimrc中实现吗?我发现的所有内容都完全关闭了括号匹配,这并不是我想要的 谢谢你的帮助 编辑:针对可能重复的评论,该答案解释了如何打开我想要关闭的内容。我希望在键入时匹配paren,但我不希望在光标位于括号上时高亮显示。谢谢 可能重复的 " Briefly jump to the matching bracket when typing set showmatch " Tur

Vim全局更换(管路)

“全局”选项并没有像预期的那样起作用(这似乎只是最近才发生了变化,但我还无法找到差异的原因) 鉴于该行: 阿巴 我发出命令: :s/a//g 我预计结果是: b 但是,结果行是: ba 我遗漏了什么?如果输入和命令与您给出的完全相同,我看不出有任何理由会出现这种行为 我的钱在第二个“a”上,不是你想象的那样。例如,它可能是。在我的屏幕上,两者无法区分。您的.vimrc中很可能设置了gdefault 从:help gdefault: When on, the ":substitute" flag

与execute一起使用时,奇怪的vim寄存器行为;正常的

如果未命名寄存器中首次注册的内容是数字,为什么以下命令不使用该内容 execute "normal! cc".(@"+1)."\<esc>" 执行“正常!cc”。(@+1)。\” 只要默认寄存器只包含一个数字,此操作就有效。前导空格将导致字符串计算为0 :echo "1" + 1 2 :echo " 1" + 1 1 通过将字符串显式转换为数字,可以避免这种情况: :echo str2nr(" 1") + 1 2 注意:如果您不关心cc的'autoindent'行为,也可以使

Vim 对齐没有分隔符的单词?

我试图将单词与vim tabular对齐,但它们之间没有分隔符,如逗号或冒号。例如: int x = 1; float y = 2; char z = 3; 我需要使用什么表达式来对齐这样的文本?在第一个单词上对齐 :Tabularize/^\s*\w\+/ 有关更多帮助,请参阅::h tabular谢谢。我知道\zs,但你为什么要逃避+(\+)?另外,使用\zs会增加一个多余的空间,但是我用\ze解决了这个问题+在Vim的正则表达式的魔术(默认)模式下被转义。请参见:h magic。

Vim 为什么这一系列命令不起作用

我试图创建一个命令,将当前行复制到新选项卡,然后在句号处()将其打断,然后在下面添加一个空行(在文本末尾),最后转到文本的开头(第一行)。我正在使用以下代码: command Lnew y | tabnew | pu | s/\. /\r\r/g | noh | o | 1G 它一直工作到noh部件,但o和1G部件不工作。问题出在哪里?您的命令是Ex命令和普通模式命令的混合。您有两个选择: 仅使用Ex命令 y | tabnew | put | s/\. /\r\r/g | nohlsear

如何在VIM中显示搜索结果的滚动条上启用高亮显示?

在vim中搜索文件/文件中的模式时,我希望在右侧滚动条上显示匹配项,这样我就知道文件中匹配项的位置,并且我可以简单地用鼠标滚动到匹配位置(类似于visual studio)。任何关于如何做到这一点的建议都将不胜感激 我试着用谷歌搜索这个问题,但答案通常与在底部面板显示搜索结果有关,但这不是我想要的 预期结果应在右侧的滚动条上显示突出显示。在终端中,Vim不提供滚动条(存在:设置标尺和状态行以提供方向)。在图形GVIM中,使用操作系统/窗口管理器提供的默认滚动条 为了给您提供搜索方向,最新的Vim

从vim中的新空白选项卡打开文件

如果我已使用以下内容打开选项卡: :tabe 是否可以在该选项卡中加载文件?例如,要执行以下操作: :o~/.vimrc 换句话说,我可以用两个命令(一个命令打开新选项卡,另一个命令打开该文件)来代替执行:tabe~/.vimrc。基本上按照您问题的注释所述,您可以执行: :tabe 接 :e ~/.vimrc vim将不带参数的:tabe视为打开一个没有文件的新选项卡。从那里你可以运行任何你想要的vim命令。基本上,你可以认为它在运行vim时没有参数,除非现在你打开了一个选项卡而不是vi

在vim中对消息进行排序

有没有一种方法可以排序: :消息 在维姆 每当我输入:messages调试一些命令时,因为它是从最旧到最新排序的,我有几百条消息,我必须按空格大约20次才能查看最近的消息。我尝试了:h消息,但找不到它提到排序的地方。可以这样做吗?我通常在需要分析信息时将其发送到缓冲区 new put=execute('message') 但是,当我需要调试自己的插件时,我会使用一个(我正在维护的)插件。调试消息可以作为消息发出,也可以作为quickfix/loclist窗口中的条目发出,或者作为文件发出。-显

上一页 1 2 ...  4   5   6   7    8   9   10  ... 下一页 最后一页 共 424 页