我已经需要过几次了,直到现在我才想到,也许维姆可以帮我做。我经常保存数字很多、名称无关紧要的文件(反正它们是临时的)
我有一个满是文件的目录:file001.txt,file002.txt…(它们并没有真正命名为“filexxx.txt”-但为了讨论…)。我经常保存一个新文件,并将其命名为file434.txt。既然这是我经常做的事情,我想跳过命名检查部分
是否有一种方法可以使vim脚本检查目录中的最后一个filexxx.txt,并将当前缓冲区保存为filexxx+1。我该怎么写那样的东西呢?以
标签: Vim
syntax-highlighting
如何在Vim中更改所选代码的颜色
有三种选择模式,Visual Line模式或Visual Block模式,并使用鼠标进行选择)
如何知道它是哪一行?gvim的选择颜色由以下行设置:
hi Visual guifg=#000000 guibg=#FFFFFF gui=none
exe "hi! Visual" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
您可以使用命名颜色值而不是#nnnnnn RGB代码。正如您所观察到
受此启发,我想询问在插入模式下还有哪些其他有用的移动/编辑命令可用。例如,是否可以在不切换到正常模式的情况下访问行开始、行结束或其他此类命令?对vim来说还是个新手,所以我习惯于在键入几个字符后四处跳跃。。。vim让我在打字前思考;) 首先尝试:h插入模式
然后,您可以查看:imap,以在vim会话中定义插入模式映射列表
:hi CTRL+D还会列出在插入模式下激活的所有文档化键绑定。(对于命令模式使用c.)除了Luc所说的,还可以尝试:h插入索引。这将使您进入“插入模式键”部分的“索引帮助”页
例如,如果我在你的.vimrc中写入,你已经在completeopt选项中添加了“longest”:
set completeopt=menu,preview,longest
这意味着omni completion只能填充所有可能匹配项中最长的公共子字符串。如果您仅使用:set completeopt=菜单,预览,则vim应在使用omni completion时选择第一个匹配项。使用ctrl-y选择列表中当前突出显示的选项。ctrl-n和p将在下一个/上一个列表中显示,但y将选择current
在Vim中键入latex时,我使用latex box和omnicomplete。我发现它只能完成一些latex命令
我们如何使用ctags生成完整基本latex命令的标记文件,或者如何从my latexFile.tex中需要的包中进一步生成标记文件
有人知道怎么做吗?还是其他解决方案?
谢谢
更新:有一篇关于ctags+latex的帖子:(这可能很有用。)对于vim完成部分,您可以使用“dictionary”选项指定文件列表,以查找i\u CTRL-X\u CTRL\K的完成候选文件
下一部分是
我不知道发生了什么事。一秒钟,n向前搜索,n向后搜索,下一秒钟,n向后搜索,n向前搜索
我能做些什么,我怎样才能回到正常的计划
(注意:我确保caps locks没有打开=p)在执行反向搜索后,使用?而不是/,n将重复反向搜索,并且n将向前搜索。当使用//code>启动搜索命令时(向前搜索命令)然后n向前搜索,然后n向后搜索。当你从?(向后搜索)开始时,然后是n向后搜索和n向前搜索。请参见:help n和:help n
可以考虑 n>代码>作为“下一次搜索同一方向的下一次匹配”的速记。code>
您可以使用创建会话
:mksession [sessionName.vim]
但是,如果以后修改该会话(即添加/删除缓冲区),则必须再次手动保存该会话,但这样做将产生以下错误
E189: "Session.vim" exists (add ! to override)
这是使用另存为而不是保存时通常会出现的错误。所以我有两个问题:
这里是否没有保存功能
是否有办法自动保存对会话文件的所有更改
注意:我知道我可以发布mksession!sessionName.vim覆盖现有会话文件
AFAIK
rlwrap do为旧时代的编辑器用户提供了浮雕。但在使用交互式控制台时,设置groovysh使用vim/vi作为编辑器似乎并不容易
例如,在Ubuntu box上使用“groovysh”时:
groovy:000> set editor=vim
groovy:000> edit
然后groovysh被冻结,Ctrl-C需要退出。根据设置,您可以将编辑器首选项设置为您喜欢的任何编辑器。因此,要使用vim,您需要运行以下命令
set editor vim
设置变量。如果您希望在每次
我正在编辑一个html文件,但当我调用NERD commenter时,它添加的是js注释(/*…*/),而不是html注释()。我刚刚安装了最新版本(2.3.0),正在使用vim 7.3
我怎样才能解决这个问题
谢谢
编辑:进一步深入研究,我在NERD_commenter.vim的源代码中找到了所有支持的文件类型的列表。奇怪的是,xhtml和html没有出现在列表中:
\ 'htmlcheetah': { 'left': '##' },
\ 'htmldjango': { 'left': '&l
我有一个自定义键盘布局。因此,我将vim命令h,j,k和l绑定到其他字母,例如,我将j绑定到e,就像这样:nmap ej
问题是,在操作员挂起模式下,有时我希望e表示j,有时我希望它表示e。例如,当我按下de时,我希望它表示dj,但当按下te时,我希望它表示te
有没有办法解决这个问题
我可以做omap de dj,但如果我想通过键入d3e来删除更多行,则这不起作用。如果有(我不这么认为,或者是否有?)某种匹配数字的方法,例如使用#,那么我可以使用类似于omap d#e d#j。或者,根据我在运
我正在编写我的第一个vim插件(viml+python)。
插件的一个命令是“GetStepCommand()”,它基本上是从远程数据源获取数据,我稍微按摩一下数据,然后将其复制到缓冲区中,这样用户就可以开始编辑它了。
用户必须向“GetStepsCommand”提供一个参数,该参数是数据所在位置的搜索路径,例如:/projects/procedure/step
现在,这条路可能很长,很容易错过拼写的东西。
所以我想为参数部分实现我自己的制表符完成。
Vim已经通过制表符自动完成命令,但当然它不
例如,要转换此
$example = array(
'First' => 'This,
'Second' => 'is',
'Third' => 'an',
'Fourth'=> 'example',
'Fifth' => '.',
);
进入这个
$example = array(
'First' => 'This',
'Second' => 'is',
'Third'
如果我在vim中按ctrl+n,我将在弹出框中获得建议的自动完成选项列表
这很好…但如果我决定不想自动完成,我不太确定该按什么来恢复建议
例如,假设我键入rea,按ctrl+n,然后自动完成弹出really\u long\u method\u name\u damn\u这个\u很烦人…我不想这样。我不太明白如何将语法恢复为rea。。。我必须手动删除不需要的字符
我猜这是一件非常简单的事情,但如果有人知道怎么做,请告诉我。尝试按Ctrl+p将您带回原始状态(或者如果您感到雄心勃勃,Ctrl+N,直
这似乎是由errorformat错误引起的,但我不确定是什么原因导致了当前值
的结果:make%
/Users/seanhess/sandbox/typescript/main.ts (62,15): Expected ';'
"~/sandbox/typescript/main.ts " [New File]
设置错误格式的当前值?
errorformat= %#%f(%l\,%c): %m
如果有用的话,这里是定义它的包 显然%#相当于正则表达式中的*
errorformat=\
我使用VIM清理数据源,并将其正确格式化,以便与SIMILE Timeline一起使用
VIM工作得很好,但据我所知,它不能自动化,所以我考虑使用SED之类的工具来清理数据源。我知道SED可以用来执行搜索和替换,但是当我使用VIM清理数据时,我使用VIM宏和VIM regex search和replace的组合
SED中是否有任何与VIM宏等效的程序?实际上,您可以自动执行VIM,并且所有以前版本的vi(但是,是的,通常您会使用SED(1)),VIM可以使用ex(1)链接启动,在这种情况下,它将
我曾经有一个宏,当我点击(重复命令)时,它会将光标返回到它以前的位置
这非常有用,因为我经常使用
基本上,我希望完全按照它现在所做的做——但不改变光标位置
我知道这是可能的,但我忘了怎么做。实现这一点的一种方法是使用标记:nnoremap。ma.`a
它的作用是:
用ma
使用重复上一次更改
使用`a返回到标记位置
它将覆盖以前用a标记的任何位置,但您可以用所需的任何字母替换a。实现此目的的一种方法是使用标记:nnoremap。ma.`a
它的作用是:
用ma
使用重复上一次更改
使用`a
标签: Vim
vim-syntax-highlighting
我正在编写一个vim语法脚本,我希望能够生成与特定模式匹配的行,比如,“^>”、“source”或模拟标记语法高亮显示
有没有办法在语法脚本级别实现这一点?我是否需要手动复制粘贴并进行适当调整?这是否需要实际文件上的modeline
谢谢 查看:帮助:syn include。它允许您以自己的语法将现有语法(如markdown)导入到语法集群中,然后您可以为其分配语法区域(如果我理解正确,这将是一个以/^>/开始并以/$/行结尾的区域)
请注意,成功不是保证;您需要从包含的语法中进行一些协作。(例
为了方便起见,我绘制了以下地图:
" this is a ctrl + backslash binding to vsplit
nmap <C-\> :vsplit<CR>
" this is a ctrl + hyphen binding to hsplit
nmap <C-_> :split<CR>
“这是对vsplit的ctrl+反斜杠绑定
nmap:vsplit
“这是一个ctrl+连字符绑定到hsplit
nmap:拆分
这很好,但还
当我用Java编写/注释并按Enter键时,vim会在下一行的开头添加一个/
// This is the first line of my comment <CR>
// <-- these were added automatically by auto-comment.
//这是我评论的第一行
//因为Vim还不能猜出你的想法,所以当新行没有继续多行注释时,你必须明确地告诉它
一个简单的解决方案是在插入模式下使用CtrlU删除自动插入的注释引线。看
顺便说一句,这个组合
我在linux服务器上使用gvim作为文本编辑器。
我有一个大文件,大约10K行
我需要选择n行数;e、 例如,从512到1034的行,并用另一行替换它们。如何实现这一点?如果文件中有其他行,则可以执行以下操作
:512,1034d | r <filename>
要用“寄存器的内容替换这些行。如果其他行在文件中,可以执行以下操作
:512,1034d | r <filename>
用的内容替换这些行注册。选择一个特定行并使用nj命令,其中n是您要跳转的行数。选择一个特
我以前使用过非常旧的Vim 7.3.46(在Windows上),现在我尝试了Vim 7.4,弹出菜单有问题
比如说,我有三个项目的弹出菜单:1,2,3
在Vim 7.3中,当我键入word的一部分时,第一个菜单项一直处于选中状态,因此,我可以只键入o,按Enter键,然后在文本中插入一个one
但在Vim 7.4中,当弹出菜单显示时选择的第一项,但当我至少键入一个符号时,选择就会消失,我需要再次击键或
这发生在不同类型的完成(由不同的插件提供)上,所以,这似乎是一个常见的问题
我已经读过了,类似
在Vim中,在安装Vim snipmates之后,我想使用此代码段自动完成括号
snippet (
(${1})${2}
但是,我遇到了一个问题,如果我输入这样的内容:
最后一个括号由代码段完成,当我在末尾输入第一个(和制表符,这次当我按制表符时,我想添加另一个)时,代码段如下所示:
但是,事实证明,Vim认为我需要输入a)来完成所有操作,因此它替换了最后一个),在这行的末尾仍然有一个)
我想知道是哪个插件做了这个替换,我怎样才能禁用它
.vimrc
Bundle "MarcWe
我使用以下Vim命令行将行号插入行的开头:
:让i=1 |%s/^/\='LINE'。Inc()/g
Inc()是一个递增i变量的函数
这一切都很好。我的问题是:
1) dot在更换零件中的作用是什么
:let i = 1 | %s/^/\='LINE_' . Inc()/g
^
2) 管道角色是做什么的?是有实际的管道在进行,还是只是语法
3) \=的作用是什么?我认为它是用来调用函数的,但是Vim help仅将\=的信
我试图通过在中添加以下设置来忽略供应商。vimrc
我通过输入ff
map ff :CtrlP<.><cr>
这是我的.vimrc,我想可能有一些设置相互冲突
hi Comment ctermfg=6
"make vim save and load the folding of the document each time it loads"
""also places the cursor in the last place that it was left.
我喜欢配色方案:Vim中生动的粉笔;但是代码折叠的颜色对我来说太分散注意力了。有人能给我一些改变的建议吗
:help命令将在vim的旅程中为您提供很多帮助。例如,:help colorscheme,:help highlight或:help syntax都将引导您访问vim关于语法突出显示的文档文件。阅读本文件将是理想的,但这确实需要一些时间。因此,如果您正在查找特定的内容,请在正常模式下使用/search命令。例如,我可以键入:help colorscheme/fold,答案就会显示出来
如我
标签: Vim
macvimvim-powerline
我正在尝试为电力线启用天气小部件,但没有成功。我添加了这个代码
{
"name": "weather",
"priority": 50,
"args": {
"unit": "F",
"location_query": "oslo, norway"
}
}
在我的主题文件的末尾。当我启动MacVim时,我得到一个错误
Error detected while processing VimEnter Auto commands fo
具有语法方法的折叠功能非常好,可以用来制作一种“函数列表”。但是,如果我想找到一个带有“/”的函数名,vim将在折叠行上定位光标,以指示候选对象在折叠内容中。我可以避免这种行为吗?如果要打开折叠以显示模糊的匹配,必须通过
:set foldopen+=search
如果要跳过(实际上忽略)折叠内部的匹配,可以使用next search match命令的映射变量来完成,该命令检查闭合折叠,然后重新调用自身:
:nnoremap ,n n:if foldclosed('.') != -1<B
我想在VIM中缩进一个包含n个空格的整个文本文件
我目前的方法是:
转到文件的开头
键入Ctrl+V
按下向下键↓ 或使用j键选择要缩进的行
Shift+I型
键入空格键n次
按Esc键
有没有一种方法可以在不使用可视模式的情况下完成此操作,并且不必手动浏览整个文件?您可以缩进一组行,如下所示:
:1,44>
如果按ctrl-g键,它将显示文件的最后一行。如何:
:%s/^/(you count n spaces here)/
使用全局替换
假设要缩进四个空格,可以执行以下操作:
:%
我正在尝试创建一个宏来全局使用它。我已将此命令插入到.vimrc文件中
但在这两种情况下,当我在任何文件上使用“@c”时,它只在文件上打印“c>:r c.c”,这是。试着这样做:
let @c = ':r c.c'
然后,在您的文件中,使用
:@c
要执行它。请尝试在宏末尾添加“^M”,然后“@c”应该可以工作。否则“:@c”应该像ebenezer提到的那样工作。您应该使用Ctrl+VEnter插入“^M”
let @c=':r c.c^M'
最好的方法是先记录宏,然后将其保存到.vimr
我在中遇到了非常有用的VIM映射
地图显示:
map <F4> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>
map:e%:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,
我想扩展它-例如cc/h文件
但是我不能理解剧本。主要是X123X
按照这种模式,我只是这样做了:
map <F4> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,
我有一个大文件需要在Linux中编辑。
该文件的数据字段用双引号(“”)括起来。但是,当我使用记事本++打开文件时,我看到双引号之间的SOH字符(即“filed1”SOH“field2”SOH“field3”SOH“field4”)
当我在vim中打开同一个文件时,我看到双引号后跟^A字符(即“文件1”^A“字段2”^A^A“字段3”^A“字段4”)
然后当我在命令行中执行这个命令时
cat filename.txt | od -c | more
我看到字符显示为001(即“filed1”00
这可以说是一种微观优化,但考虑到以下因素:
<div class="ClassOne ClassTwo">Content</div>
内容
使用Vim,并将光标放在该行的任意位置,我想知道是否有办法使用更改操作更改引号中的第二个单词?我意识到我可以跳转到那里,并以多种方式删除该词(例如fTcaw),但我想知道是否有一种方法可以在上下文中使用更改(而不仅仅是查找和更改该词)
我尝试了c2wi和cw2i,但没有乐趣。有没有一种方法可以使用“更改”或总是删除其中的所有内容?
我可以通过vimscript将自己的信息添加到状态行吗?我需要创建插件,将在一定时间后更新状态行中的一些值
提前感谢。是的,您可以通过将新内容放入来更新&statusline的值
e、 g
这将在状态行的末尾添加一个Hello。该'statusline'选项配置状态行中显示的内容。您可以通过%{expr}语法添加任意Vimscript表达式的值,例如:
:set statusline+=\ %{localtime()}
请注意,它经常被调用,因此不应该进行太多处理。或者,只需插入一个(缓冲区本
我也在Linux上尝试过,但也遇到了同样的问题
我已经将.ycm_extra_conf.py配置为使用cake生成的compile_commands.json。compile_commands.json中的“命令”行使用以下标志:
"command": "/usr/bin/c++ -std=c++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDK
在我对vimrc进行更改之后,vim开始输出当前注册的所有自动命令的列表。看起来是这样的:
*:echo "Hello " . $USER . ", how may I help you?"
VimResized
*exe "normal! \<c-w>="
cline WinEnter
*set cursorline
nuline WinEnter
*if !exists("b:NERDTreeType") | setlocal number | endif
cline Wi
有人能告诉我这个$MYVIMRC代码有什么问题吗?
问题是文件类型和缓冲区在第4行、第5行和第6行没有突出显示
这可能是因为第4行的最后一个大括号“{”,它将在vim的正常模式下运行。如果这是问题,我如何退出大括号?让我们完全回避这个问题。使用after目录使用这些设置
将以下行放入~/.vim/after/ftplugins/javascript.vim:
augroup jsgroup
autocmd!
autocmd FileType javascript iabbrev <buff
我正在学习Vimscript,我正在尝试选择一块文本并通过函数对其排序。我现在得到的是:
function! SortFirstBlock()
call setpos(".", [0, 1, 1, 0])
execute "normal! vip:sort<cr>"
endfunction
函数!SortFirstBlock()
调用setpos(“.”,[0,1,1,0])
执行“正常!vip:排序”
端功能
我的理解是通过setpos进入缓冲区中的第一个位置,
作为标题,我使用了archlinux并安装了Gnome。我想将内容复制到googlechrome,我该怎么办
我尝试过“+y”或“*y”,但没有成功。
也许我应该重新组合,但我不知道怎么做
有人能帮我吗?
谢谢。“y”复制是vim内部的,它不适用于您的X剪贴板,请尝试选择要复制的文本,然后按Shift+Ctrl+C桌面计算机上的剪贴板之间存在一些不一致,因此vim有两个寄存器:*和+。Gnome应该在+寄存器中使用剪贴板,并且“+yy(两个yankes)和“+p在GTK环境中对我的archlin
标签: Vim
vim-pluginvim-syntax-highlighting
我已经安装了spf13 vim插件,当我设置:color molokai时,会出现以下橙色突出显示
有人知道我需要更改哪个设置来禁用突出显示吗
这不是搜索的结果,这是我的第一个猜测!从图中可以看出,它似乎并不局限于任何一种特定的对象类型 您需要找出哪个语法组导致高亮显示:syn list显示所有活动组,但安装插件时更容易。当你有了违规语法组的名称时,你可以调查它的来源;(的最后几行):scriptnames可能会有所帮助
PS:Vim“发行版”如spf-13和Janus通过快速安装和开箱即用的
是否可以通过文本本身中的某个触发关键字,在缓冲区的中间触发vim语法高亮显示(filetype),如
.doc Let's view our data object as AST tree:
.py
class AST:
tag = 'sym' .doc here we set 'sym'bolic unversal data type .py
def __init__(self,V): self.val = V .doc \emph{any data can be represente
我正在编写一些内核代码,使用cscope支持的vim 8进行编辑
运行cscope-d可以搜索符号,并显示预期的信息,包括文件名、函数名和相关行
但是,在vim中,:cscope find s生成一个结果列表,其中只包含文件名和行,函数名(或上下文)列为
在这两种情况下,我都在当前目录中使用cscope.out数据库$CSCOPE_DB未设置
你知道为什么从vim运行cscope会删除函数上下文信息吗
编辑:
在多次重建数据库之后,我注意到find-s查询现在报告了预期的上下文find t查询仍
我有档案:
word some other word
(单词后10空格)
我想在不改变行长的情况下替换word
例如:
new word some other word
(单词后面有6个空格)
在vim中可能吗
我现在只有一个解决方案cl8,但我应该知道新词的长度才能做到这一点。您可以使用R进入替换模式。这使您可以在“word上键入新词,而无需修改空间量。这样做的缺点是,如果你想用一个较短的单词替换一个较长的单词,你就必须“清空”旧单词中多余的字符
有关更多信息,
标签: Vim
vim-syntax-highlighting
我有一个带有颜色标签的文本文件,例如:
foobarbaz
我希望标签内容在#c16e0d中着色,并隐藏标签,因此结果是“foobarbaz”,除了bar不是粗体,而是在#c16e0d中着色。
我试过了
:syn region String start=//end=//隐藏端点
这会使标记及其内容变成粉红色,但不会隐藏标记本身,即使我在JSON文件中运行该命令,隐藏工作正常(:set-hiddenlevel=3)
对于颜色,我查看了颜色的来源,这对于我的简单任务来说似乎过于复杂。
只有几种不同的
我在Vim中的LaTeX代码显示数学符号,如积分、指数等,就像在常规数学符号中一样。它还隐藏了其他符号,如内嵌数学模式中的美元符号,或\left(如果光标位于该行,则显示为(.Text)。如何禁用此功能?将隐藏级别设置为0会导致文本正常显示。
将隐藏级别设置为0将隐藏级别设置为0会使文本正常显示。
设置隐藏级别=0我不熟悉LaTeX或您可能使用的插件。您正在使用什么?它可能正在使用隐藏。请参阅:h'隐藏级别和/或此插件的帮助文档。是的,谢谢。它是隐藏级别。我不熟悉LaTeX或您可能使用的插件。您
有没有办法将不可修改的文本插入到可修改的缓冲区。如果可能的话,我想更改插入文本的语法高亮显示
示例(我想要实现的目标):
缓冲区的内容:
text...
/* this is a script which can be replaced
the second line of the script */
other text...
我突出显示第二行和第三行,然后运行插件,将这些行替换为不可修改的文本
text...
[non-modifiable text]
other text...
如果我
我是Vim的新手,在这个网站上还没有找到如何搜索和替换字符串的不同部分。我需要对所有出现的“SetTag(“…””)进行全局编辑,…为任何单词。我的编辑是在第二个引号后再添加一个单词。示例:SetTag(“err”+\uuuuu LINE\uuuuuu,粗体部分是我需要添加的。有人能告诉我如何使用vim搜索命令实现这一点吗?谢谢!nb:我假设“word”是双引号字符以外的任何字符序列。根据需要修改
:%s/SetTag("\([^"]*\)")/SetTag("\1" + __LINE__)/
当我在我的C文件上运行Syntastic语法检查时,我没有收到关于未使用函数的警告
当我跑的时候
:let g:syntastic_c_compiler_options
:SyntasticInfo
我明白了
(注意它以-Wall结尾)
当我跑的时候
:let g:syntastic_c_compiler_options
:SyntasticInfo
我明白了
我知道syntastic正在工作,因为我确实收到了其他警告,但是,我没有收到未使用函数的警告(即没有人调用的static int
我已经安装了带有Vlime插件()的Vim 8.0.1365,并在macOS 10.14.6(18G87)上运行了一个带start-Vlime.lisp的SBCL(1.2.11)会话
当我使用\cc从Vim连接时,SBCL会话显示vlime SBCL-来自#的新连接(将注释作为答案发布)
在处理客户机/服务器协议时,一个常见的错误源是所涉及的不同部分的版本不匹配。这些列表列出了依赖项和支持的实现,我从这里开始
另外,尝试在独立终端中启动sbcl(首先安装quicklisp,使用“rlwrap s
ls命令的输出,您可以使用:b3切换到缓冲区3,我想要的是与:args命令相同的输出,但我得到的是:
:ls
1 h "~/Documents/trash/practical-vim" line 1
3 h "LICENSE.txt" line 1
4 h "auto_complete/sea-shells.txt" line 1
5 h "files/
因此,我目前遇到的问题是在插入模式下激活caps lock,使用active capslock退出插入模式,并遇到您可能熟悉的噩梦
如中所述,我创建了一个新的键映射:
在/home/username/.vim/keymap/insert-only_capslock.vim中,您可以找到:
let b:keymap_name = "CAPS"
loadkeymap
a A
b B
c C
...
x X
y Y
z Z
A a
B b
C c
...
X x
Y y