我有一个头上有CSS的HTML文件。通常我在两个选项卡中打开文件,所以我可以很容易地在HTML和CSS之间切换,但我也想折叠大部分代码(特别是font-face声明)。不幸的是,每当我打开第二个选项卡时,每一个折叠都会被撤消。
之后我可以重新折叠所有的东西,但是如果我打开另一个标签,它又会被撤销。
我在我的.vimrc中有这样的代码折叠设置:
set foldmethod=indent " fold based on indent
set nofoldenable " don't fold by default
是否有办法使NERDtree在从缓冲区切换到缓冲区时记住折叠的状态?
这里是我的完整.vimrc:
set ignorecase
set scs
let perl_fold=1
hi Folded cterm=bold ctermfg=yellow ctermbg=lightblue
set modeline
cabbr N NERDTree
以下是我观察到的情况:
启动NERDTree
选择一个文件并使用空格在一个新的缓冲区中打开它(所有折叠都关闭)
在缓冲区中打开一些折叠
C-w返回NERDTree
选择另一个文件,使用空格打开它。
C-w返回NERDTree
我是菜鸟。我在大多数地方都可以通过缩进模式进行代码折叠,但由于某些原因,我无法让Vim在ruby中折叠.html.erb文件……即使有缩进也是如此。
这是我的vimrc的相关区域。为了让Vim知道erb文件,我还需要做些什么吗?是否可以根据文件类型自定义我的折叠?
我正在运行所有的Janus插件,所以已经安装了rails.vim等。
let ruby_fold=1
set foldmethod=indent
set foldcolumn=0
set foldlevel=99
nnoremap <space> za<cr>
我将以下代码添加到我的.vimrc中:
" save and restore folds when a file is closed and re-opened
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview
HTML和CSS文档保存和恢复它们的折叠,但是代码折叠没有保存在我的.vimrc中。
有什么建议吗?
编辑:
下面的代码解决了这个问题:
au BufWinLeave ?* mkview
au BufWinEnter ?* silent loadview
但是如果我写的话,MRU文件就
我正在使用编写一个用Clojure编写的程序。我希望能够折叠文档字符串。但是,我尝试选择docstring并按z a,这最终会折叠整个函数体。
具体来说,我想把这一点转过来:
(defn flip-and-vectorize
"Returns a vector with the arguments flipped so that
`(flip-and-vectorize 1 2)`
returns the following vector
`[2 1]`"
[a b]
[b a])
变成类似于这个的东西
(defn flip-and-vect
我正在使用这个,我想折叠phpdoc注释。
此语法文件为phpdoc注释的syn区域。相关代码是
syn region phpDocComment start="/\*\*" end="\*/" keepend contains=phpCommentTitle,phpDocTags,phpTodo,@Spell
现在我的问题是如何为已经在我的~/.vimrc文件中创建的syn区域启用折叠?
我在我的~/.vimrc中添加了下面一行,但是它没有工作。
syn region phpDocComment start="/\*\*" end=
在我的.vimrc里,我有一些台词
:set foldmethod=marker
:set foldmarker=SECTION:,ENDSECTION:
用于自定义代码折叠。在我的文件中,尊重语言中的注释字符在代码折叠标记之前,它们后面是相应部分的标题。例如。
# SECTION: First Section
some code
# SECTIION: Subsection
some more code
# ENDSECTION:
# ENDSECTION:
# SECTION: Second Section
some other code
# ENDSECTION:
此结构包含为文
我一直在尝试在vimscript中实现一个函数来在同一缓冲区的两个视图之间切换。我想要的功能是这样的:我按下一个键,屏幕位置和光标就会移动到我之前保存的位置。如果还没有另一个保存位置,则会在当前视图和光标位置创建一个。我有一个vimscript函数,它可以执行我所描述的功能:
fun! SwitchFileMarker(reset)
if a:reset == 1
if exists("b:switch_file_window")
unlet b:switch_file_window
endif
endi
我有一个代表命令行选项的数据类型:
data Flag = Verbose | Help | Buffer Int deriving (Show, Eq)
当程序运行时,我会得到一个Flag列表,它对应于用户指定的选项。例如,[Buffer 10, Verbose]。
我的问题是,从Int中的Buffer中提取[Flag]值的最佳方法是什么
列表中甚至可能没有Buffer。
我想出的只是一种复杂的遍历/折叠,它使用case语句从其他Flag中过滤掉Buffer。
我的代码中有两个相邻的标记:
<Collapsible trigger="text 1 " >
//some html content here
</Collapsible>
<Collapsible trigger="text 2 " >
//some other html content here
</Collapsible>
然而,当我关闭与'text 1‘相关联的可折叠元素时,在'text 1’和下一个可折叠元素之间仍然有一个空格。理想情况下,我想要一个滑动效果,这样当我关闭第一