VIM中的折叠代码

VIM中的折叠代码,vim,Vim,我试图在VIM中实现代码折叠。 我相信它们的标准命令是za、zc、zo等。 据我所知,要使这些命令正常工作,不需要做任何特殊的事情。 我主要是一个JS程序员 但是,这些命令在我的VIM中都不起作用。我正在使用VIM 7.2 下面是我的.vimrc文件。 我之所以展示我的整个.vimrc文件,是因为我猜测我正在使用的一个插件可能导致折叠命令无法工作 如果有人知道这里出了什么问题。。请指出 " Start pathogen plugins " call pathogen#infect() " Au

我试图在VIM中实现代码折叠。 我相信它们的标准命令是za、zc、zo等。 据我所知,要使这些命令正常工作,不需要做任何特殊的事情。 我主要是一个JS程序员

但是,这些命令在我的VIM中都不起作用。我正在使用VIM 7.2

下面是我的.vimrc文件。 我之所以展示我的整个.vimrc文件,是因为我猜测我正在使用的一个插件可能导致折叠命令无法工作

如果有人知道这里出了什么问题。。请指出

" Start pathogen plugins "
call pathogen#infect()

" Automatic syntax highlight on "
syntax on

" Necessary for NerdCommenter to Work "
filetype plugin indent on

set nocompatible
source $VIMRUNTIME/vimrc_example.vim

" Replace tabs with spaces "
set expandtab

" Make tab 2 space wide
set tabstop=2
set shiftwidth=2

" If I am in an indented block of code, keep the indentation level when I "
" press enter "
set autoindent

" Stop vim from creating automatic backups "
set nobackup
set noswapfile
set nowb
set nowritebackup

" Show line numbers "
set number

" Shift+Tab unindents a line "
imap <S-Tab> <Esc><<i
nmap <S-tab> <<

" Remove trailing spaces when saving a file "
autocmd BufWritePre * :%s/\s\+$//e

" Highlight all occurances of search "
set hlsearch

" Ignore case during search
set ignorecase

" Show tabs and trailing spaces "
set list listchars=tab:.\ ,trail:·

" set colorscheme "
colorscheme desert
set background=dark

set ff=unix
set showtabline=2
set smarttab
set incsearch

" Store a history of commands "
set history=1000

" Number of undo levels "
set undolevels=1000

" Change title of tab "
set title

" Open nerdtree plugin when vim starts "
let g:nerdtree_tabs_open_on_console_startup=1

au BufNewFile,BufRead *.less set filetype=less

let g:DirDiffExcludes = ".svn,*.swp"
let Grep_Skip_Dirs = '.svn'

" smart way to move between windows
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l

" useful mappings for managing tabs
map <leader>tn :tabnew<cr>
map <leader>to :tabonly<cr>
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove

set wrap linebreak nolist

nnoremap tp :tabprev<CR>
nnoremap tn :tabnext<CR>
nnoremap tf :tabfirst<CR>
nnoremap tl :tablast<CR>

highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()

function! TrimWhiteSpace()
    %s/\s\+$//e
endfunction
autocmd BufWritePre *.* :call TrimWhiteSpace()

我认为要使折叠命令起作用,需要设置foldmethod选项。在我看来,最简单的开头应该是“缩进”。

我使用:

vmap <F4> zf
vmap <F5> zd

在我的.vimrc文件中。这允许我使用F4和F5键折叠/展开。

打开一个js文件,其输出是什么:set fdm?foldmethod不见了。。我先把它设为缩进。。对javascript没有太多帮助。我现在正试图结合基于语法的folding提供代码,并解释为什么您的建议将解决公开的问题