pythonvim
A. vim 中怎么运行python
打开vi,输入:
:!wget https://download.jetbrains.com/python/pycharm-community-5.0.2.tar.gz
:!tar xvfz pycharm-community-5.0.2.tar.gz
:!pycharm-community-5.0.2/bin/pycharm.sh
然后你就可以愉快的写Python程序了。
B. 如何使 Vim 下开发 Python 调试更方便
刚开始用vim写python的时候,感觉很不方便,于是就用了图形界面的Pycharm(如果是windows用户,这个IDE应该是标配),用了一段时间也没有觉得有什么不好,不过,脑子里总是会想起《程序员修炼之道》中,那句”最好是精通一种编辑器,并将其用于所有编辑任务。如果不坚持使用一种编辑器,可能会面临现代的巴别特大混乱。”所以,我又决定用vim来写python。
在知乎上有很多vim写python的插件推荐,不过我感觉很多人回答都不动脑子,这些回答主要有两个问题:
回答不全面,很多人都只是推荐一款插件,然后贴个链接就完了,如果要想很爽的用vim写python,可以肯定的是,一款插件是不够的
贴上自己的配置,说自己的配置有多爽,然后就不管了。如果是一个vim新手,是用不着这么多配置的,如果是一个vim老手,也不会放弃自己原有的配置,使用别人自定义、认为很爽的个性化配置
- 1. 一键执行
- """""""""""""""""""""" "Quickly Run """"""""""""""""""""""
- map <F5> :call CompileRunGcc()<CR>
- func! CompileRunGcc()
- exec "w"
- if &filetype == 'c'
- exec "!g++ % -o %<"
- exec "!time ./%<"
- elseif &filetype == 'cpp'
- exec "!g++ % -o %<"
- exec "!time ./%<"
- elseif &filetype == 'java'
- exec "!javac %"
- exec "!time java %<"
- elseif &filetype == 'sh'
- :!time bash % elseif &filetype == 'python'
- exec "!time python2.7 %"
- elseif &filetype == 'html'
- exec "!firefox % &"
- elseif &filetype == 'go' " exec "!go build %<"
- exec "!time go run %"
- elseif &filetype == 'mkd'
- exec "!~/.vim/markdown.pl % > %.html &"
- exec "!firefox %.html &"
- endif
- endfunc
- 2. 代码补全(snipMate)
- if __name__ == '__main__':
- main()
- for needle in haystack: # code...
snipMate
xptemplate
- 3. 语法检查(Syntastic)
- 4. 编程提示(jedi-vim)
- sudo aptitude install vim-gnome vim vim-common vim-tiny
- 至于调试,难道你们不是用ipdb的吗?如果不是,赶紧用用,你们会喜欢的。
所以,这些回答都不是很靠谱。我争取推荐一些靠谱的东西,那么,就开始吧!
这个不是插件,而是一个自定义的vim配置。很多时候我们写python,都是写一些较为简单的脚本,那么,这个一键执行的功能就非常实用,我个人感觉最实用的是在写单元测试的时候,写完一个单元测试,都不用退出vim,立即执行就能看到结果。
将下面的配置放到.vimrc文件即可:
代码补全能够显着地减少你敲键的次数,并且将你从琐碎的语法中解放出来。说白了,就是帮你写代码!
如果使用snipMate插件,那么,当你输入ifmain以后按tab键,将会自动为你生成下面的代码:
输入for,再按tab键,生成如下代码:
代码补全有两款插件都比较不错,可以根据自己的需要进行选择:
syntastic是一款强大的语法检查插件,当你保存源文件时,它就会执行,并提示用户哪些代码存在语法错误,哪些代码风格不符合规范,并给出具体的提示。
例如,python代码风格默认设置为PEP8,即使你不知道PEP8的风格,只要你使用syntastic插件,并根据它给出的提示修改,那么,你就能写出完全符合PEP8风格的代码!
jedi-vim是基于jedi的自动补全插件,与Syntastic 不同的是,该插件更加智能,更贴切的称呼是”编程提示”,而不是代码补全插件。
如下图所示:
可以说,这个插件是写vim的标配,并且,真正让vim写python变成一件轻松愉快的事情。
注意: 安装惊jedi-vim插件,需要在电脑中安装jedi,根据jedi-vim给出的提示,正常按装即可。不过我之前遇到一个问题,在公司的虚拟机里面,安装以后不起作用,google了半天没有成功,最后更新了一下vim就可以了,希望遇到相同问题的人,能够看到。
C. 如何安装vim-python插件
用户自己的插件放在 ~/.vim/ftplugin 下面,插件的文件名应当是 <文件类型.vim>. 针对同一个文件类型有很多插件的, 可以在上述目录下建立子目录 (和文件类型一致), 例如建立 ~/.vim/ftplugi/tex 目录,然后把有关 tex 和 latex 的插件都放在这个目录中,这时候子目录下的文件名可以随便取,只要以 .vim 为后缀即可.
系统级的插件放在 /usr/local/share/vim/vim74/ftplugin 下面 (这是你自己编译安装的 vim,而且是配置在 /usr/local 中,系统自带的 vim 则放在 /usr/share/vim/vim74/ftplugin 下面,这裏的 74 是 vim 的版本号 7.4 的缩写,其他版本类似)。
D. 如何在VIM中指定Python解释器版本
你可能不想(或至少不应该) code> python3 作为vim的默认python解释器,因为你的插件的一些(大部分)将变得不兼容,例如 YouCompleteMe 和 clang_complete 本身,因为他们没有 python3 支持。通常,支持 python3 的插件可以让您决定是否要通过添加到 .vimrc
let g:syntastic_python_python_exec ='python3'
解决方案: :echo has('python')显示 0 实际上告诉你vim可能不是用 python2 编译的。所以首先检查 vim --version 的输出,你应该能够看到你的编译器构建vim的共享库列表。你看到以下? (例如对于python 2.7):
-L / usr / lib / python2.7 / config-x86_64-linux-gnu - lpython2.7
如果没有(或者如果你看到 -lpython2.x 和 -lpython3.x 我建议你从源代码编译vim,具体链接到 -lpython2.x
sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common
clone vim mercurial
hg clone htvim/
cd vim
,然后使用以下标志运行 ./ configure :
./configure --with-features = huge \
--enable-cscope \
--enable-pythoninterp \
--enable-largefile \
--with-python-config-dir = / usr / lib / python2.7 / config
您还可能想要链接 ruby 和 lua 如果需要,然后最后运行
make build
make install
这里是shell脚本,将自动执行整个过程为你。这可能有点过分,但我认为这是你应该如何处理这不与运行与您的未来包的兼容性问题。
E. vim哪个版本支持python3
vim可以同时支持Python和python3.
现在所有的插件调用python的时候,执行的判断是has(python'').
问题的冲突在于同时支持python,和python3的时候是动态调用的(可以用vim --version验证),导致了has('python')返回结果出了问题.
简单的说,就是vim编译的时候只编译python2.7即可.
F. vim中Python编辑问题
python是靠缩进来决定语句的层次关系的,所以你的缩进风格一定要统一,并且不能把空格和tab混起来用,而不幸的,你的softtabstop就是干这个坏事的。把你上面贴的设置语句中的最后两句改成
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
这样就总是把tab映射成4个空格,绝对不会有缩进方面的问题,而且还可以用backspace一次把4个空格删掉。
或者你想用纯粹的tab,那就不要把tab映射成空格,用下面的配置,tab宽度是4
set noexpandtab
set tabstop=4
set shiftwidth=4
set softtabstop=0 "一定要设置成0
G. vim不支持python,是不是缺少什么东西
问题可能来自两方面: vim 没有把 python 支持特性编译进来;或者编译支持的 python 与本地安装的版本不兼容。
1. 只有编译的时候带了 python 支持的 vim 才能使用相关的功能。要想知道 vim 是否带了编译时的支持,使用:
:version
看有没有 +python 之类的字样。如果是 + 号,表示支持,如果是 - 号就是不支持(像我截图中标出的 postscript 就是 -)。python 代表 python 2,python3 表示 python 3 的支持情况。
pythonthreedll=python35.dll
这样你的电脑里必需要安装 python 3.5 才可以配合 vim 使用。注意一定要是标准版的才行,定制版(比如 Anaconda)是不行的。
vim 和 python 有相当深入的交互。除了简单的交互执行 python 语句和返回结果外,vim 的内部的数据结构(比如缓冲区、窗口之类的)和 vim-script 脚本的执行接口也全对 python 开放。因此对 python 各版本支持的灵活性就要差一些,需要在编译阶段就确定。
如果想兼容你电脑上已有的 python,需要在你的电脑上重新编译 vim,这通常比较困难。在你的电脑上配置两套 python 环境要相对容易很多。或者如果你对 python 的要求并不高的话,就用 vim 支持的那版也行。
以上的回答假定您已经对 python 有一定的了解,并且可以自己正确的安装和配置 python 的环境。如果抛开 vim,python 都不能正确执行,那么需要先解决 python 的安装和配置问题。
H. python.vim放在哪个目录会使vim支持python语法高亮
试试吧。 在ubuntu下,vim配置就是可以放.vimrc里的。不过python.vim还是要复制到syntax目录。没有root权限不知道行不行。mqfv夜归人同学说可以放在/home/你的用户/.vim/syntax目录。也要试过才知道。
不过缺省的vi用来编辑python已经足够用了。也是高亮的。
我通常用geany,不过自动补全功能,听说也可以放进vim里了。
不过python的自动补全意义不大。在eclipse和wing里用,感觉也有些意外。不过因为python不是严格编译语言,所以代码没有执行到那里之间都是不知道什么含义的。自动补全经常没有什么效果。可以减少标准库的记忆量。
I. 如何使用vim编写python
vim只能修改文件,不能编译。 比方说你可以直接在终端输入vim Code.py来打开文件并修改之类的。 如果要编译,就要在终端输入Python Code.py 那么他会自行对该文件编译然后直接运行
J. 打算用vim写Python 各位指点下
保存在当前文件夹下,
那你就cd到桌面那个文件夹下再vim。