在我的.vimrc
我已经放set foldmethod=syntax
来启用折叠方法等。但是,我不喜欢默认情况下每次打开文件时,整个事情都被折叠了。有没有办法启用foldmethod
,但打开文件时会展开文件?
答案 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”组合键