当前位置:首页 » 编程语言 » vimpythonctags

vimpythonctags

发布时间: 2022-05-24 19:19:54

⑴ 为什么安装了ctags后不会提示python代码

" Execute file being edited with <Shift> + e:
map <buffer> <S-e> :w<CR>:!/usr/bin/env python % <CR>
扩展编辑python的时候,可以直接通过shift+e来运行代码

syntax on
filetype indent plugin on
set modeline
set tabstop=4
set expandtab
set softtabstop=4
set shiftwidth=4
默认情况下打开vim语法高亮,以及一些插件的支持和tab键的长度

set nonumber
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>
默认情况下不显示文本行数,可以直接通过F2来查看

autocmd FileType python set omnifunc=pythoncomplete#Complete
python autocomplete插件, 编辑代码的时候,可以使用“ctrl+x ctrl+o”完成代码补全或函数提示(以及docstring),":only" 可以只保留当前的窗口。

⑵ vim中ctags添加了qt的include以及src,但是补全仍然不完整,求直接能用的tag或生成完整tag的方法

windows下用vim实现qt代码的自动补全功能
1.安装vim.
2.下载ctags for win32并解压到c:\ctags\目录下;
3.将c:\ctags加入windows的path环境变量中;
4.下载omnicppcomplete将解压到vim安装目录的vimfiles目录下;
5.转到qt的include目录下执行ctags -R --c++-kinds=+p --fields=+iaS --extra=+q;命令完成后会在该目录下
生成一个tags文件,它是omnicppcomplete和vim用来作命令补全的数据库
6.在qt的src目录下再执行一遍上述命令;
7.编辑vim安装目录下的_vimrc文件,将下述两行加入其中
set tags+=c:\Qt\4.3.3\include\tags
set tags+=c:\Qt\4.3.3\src\tag
其中c:\Qt\4.3.3\是我机器上qt 的安装目录,根据你的情况作出调整。
8.到你的工程目录下执行5步中的命令;
9.用vim打开一个cpp文件试一下吧,哈哈;

⑶ VIM的主要功能

根据设定可以和原始vi完全兼容
多缓冲编辑
任意个数的分割窗口(横,竖)
具备列表和字典功能的脚本语言
可以在脚本中调用 Perl, Ruby, Python, Tcl, MzScheme ,C,C++
单词缩写功能
动态单词补完
多次撤销和重做
对应400种以上文本文件的语法高亮
Lisp,C/C++, Perl, java, Ruby, Python 等40种以上语言的自动缩排
利用ctags的标签中跳转
崩溃后文件恢复
光标位置和打开的缓冲状态的保存 复原(session功能)
可以对两个文件进行差分,同步功能的diff模式
远程文件编辑 。

⑷ windows10 部署完gvim怎么用python

1)安装Python2.7,我安装到了D:\Program Files\Python27,将此路径添加到环境变量;
2)安装gvim,我安装到了D:\Program Files (x86)\Vim,将路径D:\Program Files (x86)\Vim\vim80添加到环境变量;
3)安装Ctags,下载文件解压后将文件内ctags.exe文件拷贝到D:\Program Files (x86)\Vim\vim80路径下;
4)安装Taglist,下载文件解压后将plugin文件中的taglist.vim文件拷贝到D:\Program Files (x86)\Vim\vim80\plugin路径下;
5)安装Pydiction,下载文件解压后将complete-dict,pydiction和after\ftplugin路径下的python_pydiction.vim这三个文件拷贝到D:\Program Files (x86)\Vim\vim80\ftplugin路径下。

⑸ 怎样使linux中vim 具有缩进等功能

修改 /etc/vimrc (建议先cp一份)
" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console
"
" Last Change: 2010年08月02日 15时13分
"
" Version: 1.80
"
"=========================================================================
set nocompatible " 关闭 vi 兼容模式
syntax on " 自动语法高亮
colorscheme molokai " 设定配色方案
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
filetype plugin indent on " 开启插件
set backup=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
" set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
" set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为
" set foldclose=all " 设置为自动关闭折叠
" nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
" 用空格键来开关折叠

" return OS type, eg: windows, or linux, mac, et.st..
function! MySys()
if has("win16") || has("win32") || has("win64") || has("win95")
return "windows"
elseif has("unix")
return "linux"
endif
endfunction
" 用户目录变量$VIMFILES
if MySys() == "windows"
let $VIMFILES = $VIM.'/vimfiles'
elseif MySys() == "linux"
let $VIMFILES = $HOME.'/.vim'
endif
" 设定doc文档目录
let helptags=$VIMFILES.'/doc'
" 设置字体 以及中文支持
if has("win32")
set guifont=Inconsolata:h12:cANSI
endif
" 配置多语言环境
if has("multi_byte")
" UTF-8 编码
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
" Buffers操作快捷方式!
nnoremap <C-RETURN> :bnext<CR>
nnoremap <C-S-RETURN> :bprevious<CR>
" Tab操作快捷方式!
nnoremap <C-TAB> :tabnext<CR>
nnoremap <C-S-TAB> :tabprev<CR>
"关于tab的快捷键
" map tn :tabnext<cr>
" map tp :tabprevious<cr>
" map td :tabnew .<cr>
" map te :tabedit
" map tc :tabclose<cr>
"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动
"光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的
"时候会变得非常方便.
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
"一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用)
nnoremap <leader>1 :set filetype=xhtml<CR>
nnoremap <leader>2 :set filetype=css<CR>
nnoremap <leader>3 :set filetype=javascript<CR>
nnoremap <leader>4 :set filetype=php<CR>
" set fileformats=unix,dos,mac
" nmap <leader>fd :se fileformat=dos<CR>
" nmap <leader>fu :se fileformat=unix<CR>
" use Ctrl+[l|n|p|cc] to list|next|previous|jump to count the result
" map <C-x>l <ESC>:cl<CR>
" map <C-x>n <ESC>:cn<CR>
" map <C-x>p <ESC>:cp<CR>
" map <C-x>c <ESC>:cc<CR>

" 让 Tohtml 产生有 CSS 语法的 html
" syntax/2html.vim,可以用:runtime! syntax/2html.vim
let html_use_css=1
" Python 文件的一般设置,比如不要 tab 等
autocmd FileType python set tabstop=4 shiftwidth=4 expandtab
autocmd FileType python map <F12> :!python %<CR>
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y
" 打开javascript折叠
let b:javascript_fold=1
" 打开javascript对dom、html和css的支持
let javascript_enable_domhtmlcss=1
" 设置字典 ~/.vim/dict/文件的路径
autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict
autocmd filetype css set dictionary=$VIMFILES/dict/css.dict
autocmd filetype php set dictionary=$VIMFILES/dict/php.dict
"-----------------------------------------------------------------
" plugin - bufexplorer.vim Buffers切换
" \be 全屏方式查看全部打开的文件列表
" \bv 左右方式查看 \bs 上下方式查看
"-----------------------------------------------------------------

"-----------------------------------------------------------------
" plugin - taglist.vim 查看函数列表,需要ctags程序
" F4 打开隐藏taglist窗口
"-----------------------------------------------------------------
if MySys() == "windows" " 设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '"'.$VIMRUNTIME.'/ctags.exe"'
elseif MySys() == "linux" " 设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
nnoremap <silent><F4> :TlistToggle<CR>
let Tlist_Show_One_File = 1 " 不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口
let Tlist_File_Fold_Auto_Close=1 " 自动折叠当前非编辑文件的方法列表
let Tlist_Auto_Open = 0
let Tlist_Auto_Update = 1
let Tlist_Hightlight_Tag_On_BufEnter = 1
let Tlist_Enable_Fold_Column = 0
let Tlist_Process_File_Always = 1
let Tlist_Display_Prototype = 0
let Tlist_Compact_Format = 1

"-----------------------------------------------------------------
" plugin - mark.vim 给各种tags标记不同的颜色,便于观看调式的插件。
" \m mark or unmark the word under (or before) the cursor
" \r manually input a regular expression. 用于搜索.
" \n clear this mark (i.e. the mark under the cursor), or clear all highlighted marks .
" \* 当前MarkWord的下一个 \# 当前MarkWord的上一个
" \/ 所有MarkWords的下一个 \? 所有MarkWords的上一个
"-----------------------------------------------------------------

"-----------------------------------------------------------------
" plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录
" :ERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree
" o 打开关闭文件或者目录 t 在标签页中打开
" T 在后台标签页中打开 ! 执行此文件
" p 到上层目录 P 到根目录
" K 到第一个节点 J 到最后一个节点
" u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操作)
" r 递归刷新当前目录 R 递归刷新当前根目录
"-----------------------------------------------------------------
" F3 NERDTree 切换
map <F3> :NERDTreeToggle<CR>
imap <F3> <ESC>:NERDTreeToggle<CR>

"-----------------------------------------------------------------
" plugin - NERD_commenter.vim 注释代码用的,
" [count],cc 光标以下count行逐行添加注释(7,cc)
" [count],cu 光标以下count行逐行取消注释(7,cu)
" [count],cm 光标以下count行尝试添加块注释(7,cm)
" ,cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
" 注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1 " 多行注释时样子更好看

"-----------------------------------------------------------------
" plugin - DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释
"-----------------------------------------------------------------
let g:DoxygenToolkit_authorName="Asins - asinsimple AT gmail DOT com"
let g:DoxygenToolkit_briefTag_funcName="yes"
map <leader>da :DoxAuthor<CR>
map <leader>df :Dox<CR>
map <leader>db :DoxBlock<CR>
map <leader>dc a /* */<LEFT><LEFT><LEFT>

"-----------------------------------------------------------------
" plugin – ZenCoding.vim 很酷的插件,HTML代码生成
" 插件最新版:http://github.com/mattn/zencoding-vim
" 常用命令可看:http://nootn.com/blog/Tool/23/
"-----------------------------------------------------------------

"-----------------------------------------------------------------
" plugin – checksyntax.vim JavaScript常见语法错误检查
" 默认快捷方式为 F5
"-----------------------------------------------------------------
let g:checksyntax_auto = 0 " 不自动检查

"-----------------------------------------------------------------
" plugin - NeoComplCache.vim 自动补全插件
"-----------------------------------------------------------------
let g:AutoComplPop_NotEnableAtStartup = 1
let g:NeoComplCache_EnableAtStartup = 1
let g:NeoComplCache_SmartCase = 1
let g:NeoComplCache_TagsAutoUpdate = 1
let g:NeoComplCache_EnableInfo = 1
let g:NeoComplCache_EnableCamelCaseCompletion = 1
let g:NeoComplCache_MinSyntaxLength = 3
let g:NeoComplCache_EnableSkipCompletion = 1
let g:NeoComplCache_SkipInputTime = '0.5'
let g:NeoComplCache_SnippetsDir = $VIMFILES.'/snippets'
" <TAB> completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" snippets expand key
imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)

"-----------------------------------------------------------------
" plugin - matchit.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
" % 正向匹配 g% 反向匹配
" [% 定位块首 ]% 定位块尾
"-----------------------------------------------------------------

"-----------------------------------------------------------------
" plugin - vcscommand.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
" SVN/git管理工具
"-----------------------------------------------------------------

"-----------------------------------------------------------------
" plugin – a.vim
"-----------------------------------------------------------------

⑹ vim有自动补全功能吗

YouCompleteMe是Vim的自动补全插件,与同类插件相比,具有如下优势
1、基于语义补全
2、整合实现了多种插件
clang_complete、AutoComplPop 、Supertab 、neocomplcache 、Syntastic(类似功能,仅仅针对c/c++/obj-c代码)
3、支持多种语言
c、c++、obj-c、c#、python
对于其他的语言,会调用vim设置的omnifunc来匹配,因此同样支持php,ruby等语言。
4、YouCompleteMe除了提供了自动补全、自动提示错误的功能外,还提供了类似tags的功能
跳转到定义GoToDefinition
跳转到声明GoToDeclaration
以及两者的合体GoToDefinitionElseDeclaration

科普
Vim作为一款文本编辑器,针对文本自动补全这个功能来说,主要有两种实现方式:
复制代码
基于文本(acp,omnicppcompleter)
我们常用的omnicppcompleter,acp,vim自带的c-x, c-n的实现方式就是基于文本。更通俗的说法,其实就是一个字:猜
其通过文本进行一些正则表达式的匹配,再根据生成的tags(利用ctags生成)来实现自动补全的效果。
基于语义
顾名思义,其是通过分析源文件,经过语法分析以后进行补全。由于对源文件进行分析,基于语义的补全可以做到很精确。但是这显然是vim所不可能支持的。而且经过这么多年发展,由于语法分析有很高的难度,也一直没有合适的工具出现。直到,由apple支持的clang/llvm横空出世。YouCompleteMe也正是在clang/llvm的基础上进行构建的。

⑺ 你用过的最好的代码阅读或编辑工具是什么

从前读/写C程序时是ctags/cscope+vim。
后来很长一段时间接触Java/Python代码。都是直接在Finder里找到文件,用MacVim打开文件阅读代码。偶尔也用用Ack。
新加入团队这段时间纯Python,用Vim+NerdTree+Ack阅读编辑代码。
----------------------------------------------
由于阅读别人项目的代码通常带有目的性,而自己又会有几下定位到文件的狗屎运,因此连cscope之类的东西都懒得配置了。写代码方面也没配任何的OmniComplete,甚至通常映射C-n的<tab>都取消掉了。这样的好处除了会强制减少接口命名的歧义外,就比较练记忆力。

⑻ linux下一定要用vi/vim写代码连个代码自动补全都没就和记事本一样,只能用来装逼还是我

图样图森破!

vi ~/.vimrc

加入以下内容:

"设定默认解码
setfenc=utf-8
setfencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

"设定编码
setenc=utf-8
setfileencodings=ucs-bom,utf-8,chinese
setlangmenu=zh_CN.UTF-8
languagemessagezh_CN.UTF-8
source$VIMRUNTIME/delmenu.vim
source$VIMRUNTIME/menu.vim

"自动补全
filetypepluginindenton
setcompleteopt=longest,menu

"自动补全命令时候使用菜单式匹配列表
setwildmenu
autocmdFileTyperuby,erubysetomnifunc=rubycomplete#Complete
=pythoncomplete#Complete
=javascriptcomplete#CompleteJS
=htmlcomplete#CompleteTags
autocmdFileTypecsssetomnifunc=csscomplete#CompleteCSS
autocmdFileTypexmlsetomnifunc=xmlcomplete#CompleteTags
=javacomplete#Complet

当然要把VIM变成IDE,以下插件也是很有必要的。

1) ctags
2) taglist
3) AutoComplPop
4) OmniCppComplete
5) cscope
6) NERDtree

现在都用Vundle 插件管理器了,安装插件还是很方便的,我就不乱BB了。

⑼ 如何在vim中使用tab进行python代码补全

我这里要介绍的功能叫"new-omni-completion(全能补全)", 你可以用下面的命令看看介绍:

:help new-omni-completion
你还需要在~/.vimrc文件中增加下面两句:

filetype plugin indent on
打开文件类型检测, 加了这句才可以用智能补全

set completeopt=longest,menu
关掉智能补全时的预览窗口

请确定你的Ctags 已经安装好, 并且生成的tags文件已经可以用了, 那么我们就要抄家伙开搞了.
用vim打开源文件

$ vim /home/wooin/vim71/src/main.c (linux下的,文件是一样的。)
设置tags文件

:set tags=/home/wooin/vim71/tags
随便找一个有成员变量的对象, 比如"parmp",
进入Insert模式, 将光标放在"->"后面,
然后按下"Ctrl+X Ctrl+O",, 显示所有匹配的标签,。

如果你增加了一些成员变量, 全能补全还不能马上将新成员补全, 需要你重新生成一下tags文件, 但是你不用重启vim, 只是重新生成一下tags文件就行了,
这时全能补全已经可以自动补全了。
vim中的其他补全方式还有:

Ctrl+X Ctrl+L 整行补全 Ctrl+X Ctrl+N
根据当前文件里关键字补全

Ctrl+X Ctrl+K
根据字典补全 Ctrl+X Ctrl+T
根据同义词字典补全

Ctrl+X Ctrl+I
根据头文件内关键字补全 Ctrl+X Ctrl+]
根据标签补全

Ctrl+X Ctrl+F
补全文件名 Ctrl+X Ctrl+D
补全宏定义

Ctrl+X Ctrl+V
补全vim命令 Ctrl+X Ctrl+U
用户自定义补全方式

Ctrl+X Ctrl+S
拼写建议

是不是还是觉得没有tab方便?好的,人家开发了一个叫做supertab.vim这个插件。安装后,
在你的~/.vimrc文件中加上这两句:

let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
以后当你准备按"Ctrl+X
Ctrl+O"的时候直接按<Tab>就好了,这下你满足了吧。

我稍微再介绍一下上面那两句配置信息:

let g:SuperTabDefaultCompletionType="<C-X><C-O>"
" 设置按下<Tab>后默认的补全方式, 默认是<C-P>, “
现在改为<C-X><C-O>. 关于<C-P>的补全方式,
" 还有其他的补全方式,
你可以看看下面的一些帮助:
" :help ins-completion
" :help compl-omni

let g:SuperTabRetainCompletionType=2
" 0 -
不记录上次的补全方式
" 1 - 记住上次的补全方式,直到用其他的补全命令改变它
" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止

⑽ vim 和 emacs 到底比ultraedit 和notepad2/++ 强在什么地方

vim和emacs的能力确实强大,定制能力也非常强。

如vim,可定制语法高亮、颜色方案、文字编码、显示行号、自动缩进、自动保存、查找结果高亮显示等,可以设定某个功能键运行某个程序,VIM应该是程序员的编辑器,现在我在vim中编写C、python、ruby、rails等程序,直接按f4、f8、f9等就可运行看到结果。

emacs比vim要复杂的多,但我们只要能把自己的任务解决,没必要把emacs的所有功能全部掌握,现在我也用emacs编写python程序,按ctrl-c ctrl-c直接运行,用emacs运行c和ruby正在解决中。

vim的定制文件是.vimrc,emacs的定制文件是.emacs,定制好配置文件加上下载需要的各种插件,将实现几乎所有想要的功能。

emacs的文本处理能力比vim强,二进制处理能力也比vim强,emacs比vim程序体积大。如某文件在vim中16进制显示就有问题,在emacs中的16进制模式中显示无误。emacs和vim打开一个很大的文件,速度都很快,都比其他常用程序快很多。

热点内容
8uftp上传网站 发布:2025-02-13 03:01:57 浏览:242
电脑玩游戏如何配置电源 发布:2025-02-13 03:01:53 浏览:361
微信怎么上传头像不了 发布:2025-02-13 02:57:04 浏览:118
c语言矩阵的转置 发布:2025-02-13 02:38:43 浏览:624
rowphp 发布:2025-02-13 02:37:16 浏览:711
光遇安卓服周年伞在哪里领取 发布:2025-02-13 02:22:18 浏览:674
写mv脚本软件 发布:2025-02-13 02:21:56 浏览:696
超内核源码 发布:2025-02-13 02:12:54 浏览:444
趣粉脚本 发布:2025-02-13 02:11:23 浏览:952
压缩的茶叶怎么弄开 发布:2025-02-13 02:11:16 浏览:739