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

vimpython

发布时间: 2022-01-09 15:33:42

‘壹’ vim中怎么优雅的执行python代码

vim只是个文本编辑器,它只能用于编写代码,怎可能执行代码

‘贰’ 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

‘叁’ 如何使 Vim 下开发 Python 调试更方便

刚开始用vim写python的时候,感觉很不方便,于是就用了图形界面的Pycharm(如果是windows用户,这个IDE应该是标配),用了一段时间也没有觉得有什么不好,不过,脑子里总是会想起《程序员修炼之道》中,那句”最好是精通一种编辑器,并将其用于所有编辑任务。如果不坚持使用一种编辑器,可能会面临现代的巴别特大混乱。”所以,我又决定用vim来写python。

在知乎上有很多vim写python的插件推荐,不过我感觉很多人回答都不动脑子,这些回答主要有两个问题:

  • 回答不全面,很多人都只是推荐一款插件,然后贴个链接就完了,如果要想很爽的用vim写python,可以肯定的是,一款插件是不够的

  • 贴上自己的配置,说自己的配置有多爽,然后就不管了。如果是一个vim新手,是用不着这么多配置的,如果是一个vim老手,也不会放弃自己原有的配置,使用别人自定义、认为很爽的个性化配置


  • 所以,这些回答都不是很靠谱。我争取推荐一些靠谱的东西,那么,就开始吧!


  • 1. 一键执行

  • 这个不是插件,而是一个自定义的vim配置。很多时候我们写python,都是写一些较为简单的脚本,那么,这个一键执行的功能就非常实用,我个人感觉最实用的是在写单元测试的时候,写完一个单元测试,都不用退出vim,立即执行就能看到结果。

    将下面的配置放到.vimrc文件即可:



  • """""""""""""""""""""" "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)

  • 代码补全能够显着地减少你敲键的次数,并且将你从琐碎的语法中解放出来。说白了,就是帮你写代码!


    如果使用snipMate插件,那么,当你输入ifmain以后按tab键,将会自动为你生成下面的代码:


  • if __name__ == '__main__':

  • main()

  • 输入for,再按tab键,生成如下代码:


  • for needle in haystack: # code...


  • 代码补全有两款插件都比较不错,可以根据自己的需要进行选择:

  • snipMate

  • xptemplate

  • 3. 语法检查(Syntastic)

  • syntastic是一款强大的语法检查插件,当你保存源文件时,它就会执行,并提示用户哪些代码存在语法错误,哪些代码风格不符合规范,并给出具体的提示。

    例如,python代码风格默认设置为PEP8,即使你不知道PEP8的风格,只要你使用syntastic插件,并根据它给出的提示修改,那么,你就能写出完全符合PEP8风格的代码!


  • 4. 编程提示(jedi-vim)

  • jedi-vim是基于jedi的自动补全插件,与Syntastic 不同的是,该插件更加智能,更贴切的称呼是”编程提示”,而不是代码补全插件。


    如下图所示:


    可以说,这个插件是写vim的标配,并且,真正让vim写python变成一件轻松愉快的事情。

    注意: 安装惊jedi-vim插件,需要在电脑中安装jedi,根据jedi-vim给出的提示,正常按装即可。不过我之前遇到一个问题,在公司的虚拟机里面,安装以后不起作用,google了半天没有成功,最后更新了一下vim就可以了,希望遇到相同问题的人,能够看到。



  • sudo aptitude install vim-gnome vim vim-common vim-tiny



  • 至于调试,难道你们不是用ipdb的吗?如果不是,赶紧用用,你们会喜欢的。

‘肆’ 如何在vim指定Python解释器的版本

确保你的 python 解释器在系统的 path 目录里。然后执行

:setpythonthreedll=python35.dll

python35 那里改成你要指定的版本。

如果你要指定的是 python2,用这个

:setpythondll=python27.dll

指定好之后,可以试一下

:py3print("hello")

python2 的话,就是 :py 加命令了。

如果成功就没问题了。之后你要把上面 :set ... 的相关内容写到 vimrc 里去,下次启动 vim 就不用再次指定了。

‘伍’ 如何使vim下开发python调试更方便

1. 一键执行

这个不是插件,而是一个自定义的vim配置。很多时候我们写python,都是写一些较为简单的脚本,那么,这个一键执行的功能就非常实用,我个人感觉最实用的是在写单元测试的时候,写完一个单元测试,都不用退出vim,立即执行就能看到结果。
将下面的配置放到.vimrc文件即可:

""""""""""""""""""""""
"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)

代码补全能够显着地减少你敲键的次数,并且将你从琐碎的语法中解放出来。说白了,就是帮你写代码!

如果使用snipMate插件,那么,当你输入ifmain以后按tab键,将会自动为你生成下面的代码:

if __name__ == '__main__':
main()

输入for,再按tab键,生成如下代码:

for needle in haystack:
# code...

代码补全有两款插件都比较不错,可以根据自己的需要进行选择:
snipMate
xptemplate
3. 语法检查(Syntastic)

syntastic是一款强大的语法检查插件,当你保存源文件时,它就会执行,并提示用户哪些代码存在语法错误,哪些代码风格不符合规范,并给出具体的提示。
例如,python代码风格默认设置为PEP8,即使你不知道PEP8的风格,只要你使用syntastic插件,并根据它给出的提示修改,那么,你就能写出完全符合PEP8风格的代码!

4. 编程提示(jedi-vim)

jedi-vim是基于jedi的自动补全插件,与Syntastic 不同的是,该插件更加智能,更贴切的称呼是”编程提示”,而不是代码补全插件。

如下图所示:

可以说,这个插件是写vim的标配,并且,真正让vim写python变成一件轻松愉快的事情。
注意: 安装惊jedi-vim插件,需要在电脑中安装jedi,根据jedi-vim给出的提示,正常按装即可。不过我之前遇到一个问题,在公司的虚拟机里面,安装以后不起作用,google了半天没有成功,最后更新了一下vim就可以了,希望遇到相同问题的人,能够看到。

sudo aptitude install vim-gnome vim vim-common vim-tiny

‘陆’ 打算用vim写Python 各位指点下

保存在当前文件夹下,
那你就cd到桌面那个文件夹下再vim。

‘柒’ 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 的安装和配置问题。

‘捌’ 如何使用vim编写python

vim只能修改文件,不能编译。 比方说你可以直接在终端输入vim Code.py来打开文件并修改之类的。 如果要编译,就要在终端输入Python Code.py 那么他会自行对该文件编译然后直接运行

‘玖’ 如何在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脚本,将自动执行整个过程为你。这可能有点过分,但我认为这是你应该如何处理这不与运行与您的未来包的兼容性问题。

热点内容
pythondouble 发布:2024-12-29 04:40:45 浏览:92
直射光照算法 发布:2024-12-29 04:40:05 浏览:385
app云服务器长啥样 发布:2024-12-29 04:36:24 浏览:1000
算法涂抹 发布:2024-12-29 04:29:17 浏览:840
java中重载和重写的区别 发布:2024-12-29 04:29:15 浏览:701
android保存bitmap 发布:2024-12-29 04:13:11 浏览:886
微博清理缓存 发布:2024-12-29 04:05:34 浏览:785
class在线反编译工具 发布:2024-12-29 03:49:44 浏览:711
炉石怎么切换服务器 发布:2024-12-29 03:17:47 浏览:73
安卓怎么才有苹果的主题 发布:2024-12-29 03:10:33 浏览:191