如何在打开文件时将默认设置为展开?

时间:2011-11-29 18:54:01

标签: vim file-io default unfold

在我的.vimrc我已经放set foldmethod=syntax来启用折叠方法等。但是,我不喜欢默认情况下每次打开文件时,整个事情都被折叠了。有没有办法启用foldmethod,但打开文件时会展开文件?

8 个答案:

答案 0 :(得分:54)

您可以将其放在.vimrc中: au BufRead * normal zR

它声明了一个自动命令(au),在读取缓冲区(BufRead)时触发,匹配所有文件(*)并执行zR(打开正常模式下的所有折叠命令。

答案 1 :(得分:51)

set foldlevel=99
无论用于折叠的方法如何,

都应打开所有折叠。 foldlevel=0所有折叠,foldlevel=1只有一些,...更高的数字将减少更少的折叠。

答案 2 :(得分:16)

set nofoldenable

将此项添加到.vimrc会在您打开文件时暂时停用折叠,但仍可以使用zc

恢复折叠

答案 3 :(得分:5)

.vimrc中为BufWinEnter添加autocmd以自动打开所有折叠:

autocmd BufWinEnter * silent! :%foldopen!

告诉vim在打开silent :%foldopen!事件后执行BunWinEnter(请参阅:h BufWinEnter)。由于silent %foldopen!%将在整个缓冲区上执行foldopen,并且会因!而递归打开所有折叠。 silent将禁止任何最终错误消息。 (如果缓冲区实际上不包含任何折叠,您可能会收到E490: No fold found之类的错误消息)

注意:您可以使用BufRead代替BufWinEnter,但如果文件具有启用折叠的模式行,则会覆盖此autocmd。我的意思是BufRead autocmds在处理模式行之前运行,BufWinEnter将在之后运行它们。我发现后者更有用

答案 4 :(得分:2)

如果您想要一种方法让它在打开后立即展开,您可以使用set foldlevelstart=99解释许多答案。

但是,如果您只想看到它们展开,您只需按zi即可展开所有内容。另一个,zi将关闭它们。

答案 5 :(得分:1)

您可以添加

set foldlevelstart=99

到您的.vimrc文件,它将开始编辑任何打开所有折叠的新文件。

答案 6 :(得分:0)

from tkinter import * from tkinter import messagebox turn = "X" def mark_square(box): global turn if box.cget('text') == " ": box['text'] = turn else: messagebox.showerror(title="Invalid", message="Invalid") class ButtonWithContext(Button): """Specializes tkinter.Button to allow a `command` that takes the button as a parameter""" def __init__(self, *args, **kwargs): try: self._my_command = kwargs["command"] kwargs["command"] = self.run_command except KeyError: self._my_command = None super().__init__(*args, **kwargs) def run_command(self): if self._my_command is not None: return self._my_command(self) root = Tk() root.title("Tic-Tac-Toe") for x in range(0, 3): for y in range(0, 3): grid_box = ButtonWithContext(text=" ", font=("Arial", 40), padx=20, command=mark_square) grid_box.grid(row=x, column=y) root.mainloop() 放入.vimrc文件中时,可以打开展开的文件。

答案 7 :(得分:-1)

您可以将其映射到键以启用它。 例如,

nmap ,f :set foldmethod=syntax<CR>

然后在正常模式下点击“,f”组合键