Vim 仅为c文件打开标记列表窗口

Vim 仅为c文件打开标记列表窗口,vim,tags,taglist,Vim,Tags,Taglist,我只想专门为C文件打开标记列表窗口 如果我在我的.vimrc中输入以下命令,那么所有文件的窗口都会打开 let Tlist_Auto_Open=1 但是,当我使用基于文件类型的autocmd时,它不会打开。我需要检查是否存在任何依赖关系 autocmd FileType c,cpp,h,py let Tlist_Auto_Open=1 我的.vimrc的一部分如下所示- " Install pathogen execute pathogen#infect() set number

我只想专门为C文件打开标记列表窗口

如果我在我的
.vimrc
中输入以下命令,那么所有文件的窗口都会打开

let Tlist_Auto_Open=1
但是,当我使用基于文件类型的
autocmd
时,它不会打开。我需要检查是否存在任何依赖关系

autocmd FileType c,cpp,h,py let Tlist_Auto_Open=1
我的.vimrc的一部分如下所示-

" Install pathogen
execute pathogen#infect()  

set number                      " Display Line Numbers         
set autoindent                  " Auto-indenting               
set showmatch                   " Highlight Matching brackets  
set tabstop=4                   " Default tabstop value        
set shiftwidth=4
set smarttab                    " Enable smart tab             
set hlsearch                    " highlight searched items     
set ignorecase                  " ignore case when searching   
set smartcase                   " ignore case if search pattern is all lowercase, case-sensitive otherwise
" set scrolloff=999             "Start scrolling when we're 8 lines away from margins

" No annoying sound on errors
set noerrorbells
set novisualbell
set timeoutlen=500

filetype plugin on
filetype plugin indent on
set ic 
autocmd filetype python set expandtab

" Remove the trailing white-spaces in the C-file
autocmd FileType c,cpp,h,py autocmd BufWritePre <buffer> %s/\s\+$//e

" Unmap the tab-key in the taglist window.
:autocmd BufEnter __Tag_List__ silent! nunmap <buffer> <Tab>

" Syntax higlight for Groovy
au BufRead,BufNewFile *.atc set filetype=groovy


""""""""""""""""""""""""""""""""""
" Taglist configuration
""""""""""""""""""""""""""""""""""
"
" To automatically close the tags tree for inactive files.
" let Tlist_File_Fold_Auto_Close = 1

" Display only one file in taglist.
let Tlist_Show_One_File = 1

" Taglist window size
let Tlist_WinWidth = 30

" Open Taglist by default
autocmd FileType c,cpp,h,py let Tlist_Auto_Open=1

" Close VIM when only taglist window is open
let Tlist_Exit_OnlyWindow = 1
“安装程序”
执行病原体#感染()
“设置编号”显示行号
设置“自动缩进”自动缩进
设置showmatch“突出显示匹配括号
设置tabstop=4“默认tabstop值
设置shiftwidth=4
设置智能选项卡“启用智能选项卡”
设置hlsearch“突出显示搜索的项目
设置ignorecase“搜索时忽略大小写”
设置smartcase“如果搜索模式都是小写,则忽略大小写,否则区分大小写
“set scrolloff=999”在距页边距8行时开始滚动
“错误上没有烦人的声音
设置无错误单元格
设置novisualbell
设置timeoutlen=500
上的文件类型插件
文件类型插件缩进
集成电路
autocmd文件类型python集expandtab
“删除C文件中的尾随空格
autocmd文件类型c,cpp,h,py autocmd BufWritePre%s/\s\+$//e
“在标记列表窗口中取消标记键的映射。
:autocmd BufEnter\uuuu标签\uu列表\uuuuuuu静音!修女图
Groovy的语法
au BufRead,BufNewFile*.atc set filetype=groovy
""""""""""""""""""""""""""""""""""
“标记列表配置”
""""""""""""""""""""""""""""""""""
"
“自动关闭非活动文件的标记树。
“让Tlist\u File\u Fold\u Auto\u Close=1
“在标记列表中仅显示一个文件。
让Tlist\u显示一个文件=1
“标记列表窗口大小”
设Tlist_WinWidth=30
“默认情况下打开标记列表
autocmd文件类型c、cpp、h、py let Tlist_Auto_Open=1
“仅当标记列表窗口打开时,关闭VIM
让Tlist_Exit_OnlyWindow=1

这是一个计时问题。标记列表插件在加载过程中评估
列表的自动打开配置。此时,您的
~/.vimrc
已被读取,但尚未打开任何文件。您的
:autocmd
仅在该文件被
:edit
编辑后激活,然后,标记列表的初始值此外,除非您在Vim会话中只编辑一个[type of]文件,否则您的方法将导致所有后续文件打开标记列表

因此,您无法使用标记列表提供的配置功能,但幸运的是,通过
:TlistOpen
命令可以很容易地实现插件的自动触发。只需将autocmd修改为:

:autocmd FileType c,cpp,h.py TlistOpen

这是一个计时问题。标记列表插件在加载过程中评估
Tlist\u Auto\u Open
配置。此时,您的
~/.vimrc
已被读取,但尚未打开任何文件。您的
:autocmd
仅在该文件被
:edit
编辑后激活,然后,标记列表初始化同样,除非在Vim会话中只编辑一个[type of]文件,否则您的方法将导致所有后续文件打开标记列表

因此,您无法使用标记列表提供的配置功能,但幸运的是,通过
:TlistOpen
命令可以很容易地实现插件的自动触发。只需将autocmd修改为:

:autocmd FileType c,cpp,h.py TlistOpen

非常感谢您的回答。这很有效,但还有另一个问题。如果我使用vim buffers打开第二个C文件,那么它会切换标记列表窗口。有没有办法检查它是否已经打开?哦,那么使用
:TlistOpen
。我认为
:Tlist
只会打开,因为还有
:TlistToggle
。这似乎是一种假设是错误的…太好了!一个附带的问题。默认情况下,光标在列表窗口中,是否可以改为在打开的文件中?或者这是另一个问题?;)使用
TlistOpen | wincmd p
;这会将光标发送回上一个窗口。在autocmd中,或者通常情况下?键入时它对我有效。谢谢ot作为您的答案。这是可行的,但还有另一个问题。如果我使用vim buffers打开第二个C文件,那么它会切换标记列表窗口。有没有办法检查它是否已经打开?哦,那么改用
:TlistOpen
。我认为
:Tlist
只会打开,因为还有
:TlistToggle
。这个假设似乎是错误的。…太好了!一个附带的问题。默认情况下,光标在列表窗口中,是否可以改为在打开的文件中?或者这是另一个问题?;)使用
TlistOpen | wincmd p
;这会将光标发送回上一个窗口。在autocmd中,或者通常情况下?键入时它对我有效。