Làm cách nào tôi có thể kích hoạt và thực hiện mã gấp trong Vim?
Tôi có phải thay đổi bất cứ điều gì trong ~/.vimrc
?
Tôi gõ z+ avà z+ cvà z+ ovà không có gì xảy ra.
Đây là một bài viết về gấp: Mã gấp trong Vim .
Làm cách nào tôi có thể kích hoạt và thực hiện mã gấp trong Vim?
Tôi có phải thay đổi bất cứ điều gì trong ~/.vimrc
?
Tôi gõ z+ avà z+ cvà z+ ovà không có gì xảy ra.
Đây là một bài viết về gấp: Mã gấp trong Vim .
Câu trả lời:
Không bạn không cần phải đặt lệnh từ trang bạn liên kết đến trong của bạn ~/.vimrc
, bạn chỉ có thể gõ họ sau khi phát hành :
tại vim
để có được những command prompt.
Tuy nhiên nếu bạn đặt các dòng:
set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2
như được chỉ ra trong liên kết bạn đưa ra, trong của bạn ~/.vimrc
, bạn không phải nhập chúng mỗi khi bạn muốn sử dụng tính năng gấp trong một tệp. Các set nofoldenable
đảm bảo rằng khi khai mạc, các file là "bình thường", tức là không gấp.
:
. Bạn gõ các set
lệnh sau lời nhắc bạn nhận được khi gõ :
. Các zc
bạn gõ khi bạn có thể tự do di chuyển con trỏ, giống như bạn sẽ sử dụng zt
để có được những văn bản con trỏ vào phía trên cùng của màn hình hiện tại.
Phương pháp gấp mặc định của Vim manual
có nghĩa là các nếp gấp được tạo thủ công; nếu không, có được không gấp được đóng hoặc mở bằng za, zohoặc zcnhư bạn mô tả. Nhưng, bạn có thể tạo một nếp gấp zf{motion}
ở chế độ Bình thường hoặc zfở chế độ Trực quan ; ví dụ: zfjtạo một nếp gấp cho dòng hiện tại và dòng tiếp theo trong chế độ Bình thường .
indent
Câu trả lời được chấp nhận, bởi @Anthon, mô tả cách đặt phương thức gấp thành indent
; tức là gấp được xác định bởi mức độ thụt.
syntax
Theo cách thuận tiện hơn, các nếp gấp có thể được tạo tự động dựa trên cú pháp ngôn ngữ của bộ đệm hiện tại. Nếu bạn đang sử dụng ngôn ngữ lập trình, hãy gọi nó là L và bạn có định nghĩa gấp về L (ví dụ: bạn đã cài đặt một plugin Vim trong đó thông tin gấp của L được xác định, chẳng hạn như c.vim cho C / C ++ hoặc python -Mode cho Python), bạn chỉ cần đặt phương thức gập thành syntax
:
set foldmethod=syntax
Đó là nó. Các lệnh hữu ích nhất để làm việc với các nếp gấp là:
foldlevel
một.foldlevel
một.foldlevel
về 0 - tất cả các nếp gấp sẽ được mở.Bạn không cần phải sử dụng nó một cách có hệ thống: Tôi thường chọn thủ công các nếp gấp theo chuyển động hoặc phần. Ví dụ, gấp một đoạn là zfip
và gấp 20 dòng tiếp theo là zf20j
. Sử dụng za
để chuyển đổi và zd
loại bỏ.
Điều này đòi hỏi một chút công việc hơn nhưng cho phép gấp của bạn để phản ánh nhiệm vụ trong tầm tay.
Bạn có thể kích hoạt folding
trong phiên hiện tại như câu trả lời của @ Anthon. Nhưng nếu bạn muốn làm cho nó vĩnh viễn, bạn phải đặt ít nhất dòng này vào .vimrc
công việc gấp:
set foldmethod=indent
indent
là loại gấp, bạn có thể xem thêm từ :help foldmethod
'foldmethod' 'fdm' string (default: "manual")
local to window
{not in Vi}
{not available when compiled without the +folding
feature}
The kind of folding used for the current window. Possible values:
fold-manual manual Folds are created manually.
fold-indent indent Lines with equal indent form a fold.
fold-expr expr 'foldexpr' gives the fold level of a line.
fold-marker marker Markers are used to specify folds.
fold-syntax syntax Syntax highlighting items specify folds.
fold-diff diff Fold text that is not changed.
Bây giờ, mỗi khi bạn mở một tệp với vim
, bạn có thể thấy mã được gấp theo phương thức bạn đã đặt. Sau đó, bạn có thể sử dụng za
, zc
, zo
.