我在工作中使用vim来开发相当大的perl代码,我在学习如何正确使用折叠时陷入了困境。
(注:我还是半年前从gedit转过来的Vim的新手,但我仍然每天都在学习新的强大的东西!)
这是我的.vimrc中与折叠相关的部分
" mouse is on
set mouse=a
" folding
set foldmethod=syntax
set foldlevelstart=1
let perl_fold=1
let sh_fold_enabled=1
let perl_extended_vars=1
let perl_sync_dist=250
所以这个东西是好的,因为它折叠所有
1)我的.vimrc中有一个折叠式费用。在“帮助折叠-expr”部分下的第三个示例),它将用空行分隔的段落进行折叠:
set foldmethod=expr
set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
我的大多数文件都是带有段落的文件(从我的.vimrc开始)
2)但是我有两个或三个文本文件,它们只是没有段落的列表,我希望能够折叠所有东西,除了匹配到我的搜索。我在Vim Wikia (Tip 282)中找到了以下“简单折叠”(
有什么方法可以告诉vim在新行中格式化括号吗?
例如:
public class Foo {
private Foo(int a) {
if (a > 30) {
// do stuff
}
for (int i = 0; i < a; i++) {
// more stuff
}
}
}
应成为:
public class Foo
{
private Foo(int a)
{
if (a > 30)
有没有办法让我设置vim自动折叠ruby源文件,但只在方法级别上折叠,而不管它们是在什么级别定义的?
因此,当我有以下条件时,它会折叠:
class MyClass
def method
...
end
end
而且当我有:
module FirstModule
module SecondModule
class MyClass
def method
...
end
end
end
end
我已经尝试过foldmethod=syntax和各种折叠层,但它没有考虑到定义方法的深度。
此外,我不希望方法内部的任何东西都
我使用折叠符表示评论,比如
#
Stuff between the # are comments and automatically folded
#
但是当它们折叠起来的时候是这样的
+-- 4 lines: #--------------------------------------------------------------
我宁愿他们说
+-- 4 Stuff between the # are comments and automatically folded
并且不会被高亮显示,或者在我的黑色终端上使它们成为白色背景。
我认为是foldtext变量,而正则表达式超出了我
在启动过程中,我试图使用VimScript的runtimepath替换Vim中的默认 (又名rtp)。我不能使用.vimrc,因为我正在设置的值在.vimrc中不可用。但是,Vim似乎抱怨每一次将~作为模式(第二个参数)传递给substitute()的尝试,或者最终什么也不做。
我怎样才能让Vim与之匹配,然后再替换这个倾斜体呢?我想做的大概是:
vim -c 'let &rtp = substitute(&rtp, "\\~", "/absolute/path", "g")'
原来,\~给了我:E33: No p
当我在Vim中查看带有冗长注释的长代码文件时,我希望能够加载包含注释的文件,但其他所有内容都展开。我的.vimrc中当前的折叠配置是:
set foldmethod=syntax
set nofoldenable
这样,当我想要开始折叠时,我可以直接开始执行z命令。但是有没有办法只折叠(区块)评论呢?