前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何使用Vim编写和调试Python代码

如何使用Vim编写和调试Python代码

作者头像
py3study
发布于 2020-01-13 05:06:23
发布于 2020-01-13 05:06:23
4K0
举报
文章被收录于专栏:python3python3

如何使用Vim编写和调试Python代码

1.部署环境

要想在Ubuntu下使用VIM编写和调试Python代码,请下安装如下的链接进行配置:

https://segmentfault.com/a/1190000003962806

2.问题解决方案

在安装过程中,可以遇到如下问题

  • Vim 处理BufRead自动命令时发生错误 ,E28:没有高亮群组名:BadWhitespace?

https://www.zhihu.com/question/48957347/answer/113515412

  • 在Ubuntu 16.04 LTS 下用Vim 打造自己的Python IDE 问题总结

http://blog.csdn.net/jeff_liu_sky_/article/details/53955888

3.使用PDB调试Python

  • Python debug的概念说明

http://caimaoy.com/caimaoy_gitbook/python/python_debug.html

  • Python 使用pdb调试的官方文档

https://docs.python.org/2/library/pdb.html

  • 使用pdb调试的基本知识

方法:运行 python -m pdb myscript.py

(Pdb) 会自动停在第一行,等待调试,这时你可以看看帮助

(Pdb) h

说明下这几个关键 命令

>断点设置

(Pdb)b 10 #断点设置在本py的第10行

或(Pdb)b ots.py:20 #断点设置到 ots.py第20行

删除断点(Pdb)b #查看断点编号

(Pdb)d 2 #删除第2个断点

>运行

(Pdb)n #单步运行

(Pdb)s #细点运行 也就是会下到,方法

(Pdb)c #跳到下个断点

>查看

(Pdb)p param #查看当前 变量值

(Pdb)l #查看运行到某处代码

(Pdb)a #查看全部栈内变量

>如果是在 命令行里的调试为:

import pdb

def tt():

pdb.set_trace()

for i in range(1, 5):

print i

>>> tt()

#这里支持 n p c 而已

> <stdin>(3)tt()

(Pdb) n

4.知识补充

  • Unix衍生系统配置vim

sudo apt-get remove vim-tiny

sudo apt-get update

sudo apt-get install vim

  • set nocompatible

vim 是 vi 的最流行的加强版。它在 vi 的基础上增加了很多功能,但就不与 vi 完全兼容了。

set compatible 就是让vim 关闭所有扩展的功能,尽量模拟 vi 的行为。搜索

但这样就不应用 vim 的很多强大功能,所以一般没有什么特殊需要的话(比如执行很老的 vi 脚本),都要在 vim 的配置开始,写上 set nocompatible,关闭兼容模式。由于这个选项是最最基础的选项,会连带很多其它选项发生变动(称作副作用),所以它必需是第一个设定的选项

set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。使用set更改shell特性时,符号"+"和"-"的作用分别是打开和关闭指定的模式。set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定义即可。

set 命令为 shell 设定参数变量。许多命令的输出是以空格分隔的值,如果要使用其中的某个数据域,使用 set 非常有效。

#!/bin/sh

echothe date is $(date)

set$(date)

echothe month is $2

输出:

the date is Wed Apr 23 15:34:16 CST 2014

the month is Apr

  • :filetype off

关闭文件类型检测

Vim把它所有的配置存在两个相当简单的地方:一个简明的~/.vimrc文件和全是纯文本文件的~/.vim目录。

Vim到处都可以运行,可以进行diff比较,社区成熟有很多插件。我愿意多花点精力如果它确实能节约我很多时间。

  • noremap

noremap是不会递归的映射 (大概是no recursion)

例如

noremap Y y

noremap y Y

不会出现问题

前缀代表生效范围

inoremap就只在插入(insert)模式下生效

vnoremap只在visual模式下生效

nnoremap就在normal模式下(狂按esc后的模式)生效

这样可以减少快捷键所用到的键位组合的个数

一个组合可以有多种用途 就不用费劲心思思考 该映射哪个没被绑定过的键了

  • vim配置文件中的nnoremap和inoremap有什么区别

一个是在普通模式(normal mode)下生效的映射,一个是在插入模式(insert mode)下生效。

这样可以在不同模式下使用同一个按键产生不同的效果。

noremap 和 map 的区别是,被映射的序列不会再被递归映射。

nnoremap是什么意思?——简单来说,nnoremap将一个组合快捷键映射为另一个快捷键。一开始的n,指的是在Vim的正常模式(Normal Mode)下,而不是可视模式下重新映射。基本上,nnoremap <C-J> <C-W><C-j>就是说,当我在正常模式按下<C-J>时,进行<C-W><C-j>操作

  • 缓冲区(Buffers)

虽然Vim支持tab操作,仍有很多人更喜欢缓冲区和分割布局。你可以把缓冲区想象成最近打开的一个文件。Vim提供了方便访问近期缓冲区的方式,只需要输入:b <buffer nameor number>,就可以切换到一个已经开启的缓冲区(此处也可使用自动补全功能)。你还可以通过ls命令查看所有的缓冲区。

专业贴士: 在:ls命令输出的最后,Vim会提示“敲击Enter继续查看”,这时你可以直接输入:b <buffer name>,立即选择缓冲区。这样可以省掉一个按键操作,也不必去记忆缓冲区的名字。

  • 安装YouCompleteMe
  1. 使用vunble安装YouCompleteMe插件
  2. 运行install下载并编译生成ycm_core cd ~/.vim/bundle/YouCompleteMe ./install.py --clang-completer # 不需要sudo
  3. 在.vimrc中加入

" YouCompleteMe

set runtimepath+=~/.vim/bundle/YouCompleteMe

let g:ycm_collect_identifiers_from_tags_files = 1 " 开启 YCM 基于标签引擎

let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释与字符串中的内容也用于补全

let g:syntastic_ignore_files=[".*\.py$"]

let g:ycm_seed_identifiers_with_syntax = 1 " 语法关键字补全

let g:ycm_complete_in_comments = 1

let g:ycm_confirm_extra_conf = 0

let g:ycm_key_list_select_completion = ['<c-n>', '<Down>'] " 映射按键, 没有这个会拦截掉tab, 导致其他插件的tab不能用.

let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>']

let g:ycm_complete_in_comments = 1 " 在注释输入中也能补全

let g:ycm_complete_in_strings = 1 " 在字符串输入中也能补全

let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全

let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

let g:ycm_show_diagnostics_ui = 0 " 禁用语法检查

inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" | " 回车即选中当前项

nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>| " 跳转到定义处

"let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项

  • 颜色主题 输入":colorscheme"即可查看当前的配色方案,默认是default 可以通过:colorscheme 主题名字 修改主题 主题有:blue darkblue defaultdelek desert elflord evening industry Koehler morning murphy pablo peachpuffron shine slate torte zellner
  • Python 虚拟环境:Virtualenv 用来为一个应用创建一套“隔离”的Python运行环境,确保可以针对不同版本的python库进行编码
  • 在写Python的时候,你最喜欢用哪一款IDE?

在本机上正经写代码: PyCharm,社区版免费,专业版 $199 每年。

在本机上写几行脚本: ipython 或者 pyipython。

服务器调试的时候微调代码:vim

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VIM个性化配置(一)
只需在Home目录创建一个 ~/.vimrc 文件即可以配置 vim 了,如需安装插件,在 ~/.vim 目录下创建一个bundle文件夹,插件装在里面。(需安装 Vundle 插件管理器),将以下内容拷入~/.vimrc 文件中即可。
宋天伦
2020/07/27
1.4K0
vim之IDE功能配置
该功能的使用需要安装YouCompleteMe。使用的是vbundle来管理插件。
李小白是一只喵
2020/04/24
9500
vim之IDE功能配置
vim的配置_vim全局配置
因为写了一段时间前端,一直在考虑vim是否能够替代前端无敌编辑器vscode,最后发现只能高仿,自己配置的性能跟vscode下的vim模式差不多,灵活性更高点,喜欢折腾的朋友可以试试,否则用vscode vim模式吧,已经神一般的完美了(不是高级黑-。-)。 这套插件目前包含了代码自动补全,目录树,js/jsx eslint自动格式化,小黑屋模式, 文件搜索ctrlp,快速检索ack,emmet,函数工具条还有各种奇奇插插的主题配置而成, 别想歪。这里我做了一堆的配置,大家可以根据个人喜好,配置任意的快捷键。我是一边做一边写的文章,有些东西可能没考虑到,有问题可以给我留言。
全栈程序员站长
2022/11/14
2.9K0
vim的配置_vim全局配置
vim配置
默认检查的是CPP,要检查C需要修改一下。 python项目要加进Pythonpath,否则包可能找不到定义:
超级大猪
2019/11/22
7250
超级强大的vim配置(vimplus)
最近在重新配置Vim,也在GitHub上找了三个star和fork数目很高的方案,在这里分享给大家: https://github.com/amix/vimrc - star 3,482 ; Fork
_gongluck
2018/03/13
29.9K2
超级强大的vim配置(vimplus)
手把手教你配置linux下C++开发工具——vim+ycm(YouCompleteMe),支持基于语义的自动补全和第三方库补全(史上最简单、史上最透彻、史上最全的终极解决方案)
截止到目前,vim稳定版本已经到了8.2+,ycm(YouCompleteMe的简称)最新版本与几年前的安装配置截然不同了。之前网上很多教程也教不得法,生搬硬套,没有讲透彻。所以,才下定决心写一篇自认为史上最简单、史上最全的教程出来。
Java架构师历程
2020/11/10
6K0
手把手教你配置linux下C++开发工具——vim+ycm(YouCompleteMe),支持基于语义的自动补全和第三方库补全(史上最简单、史上最透彻、史上最全的终极解决方案)
Docker - Nginx定制
直接采用Nginx镜像进行定制修改 Docker容器换源 常用软件 apt-get install vim apt-get install lrzsz apt-get install zip unzip apt-get install git 安装 上传 vimplus.zip 解压文件 进入文件夹 可以先编辑配置文件 vim .vimrc """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 通用设置 """""
断痕
2021/01/21
2.1K0
Linux : Vim 使用与配置 (附 GitHub 自动化配置脚本)
由于经常使用 vim 编辑配置文件,有时候也会进行使用vim 编写一些脚本和c/c++ 程序,所以配置一个常用的 vim 是很是必要的。这篇博文主要是记录vim使用和配置相关的一些知识点。
西湖醋鱼
2020/12/30
4.8K0
Linux : Vim 使用与配置 (附 GitHub 自动化配置脚本)
vim 使用教程
定义映射模式时,我们可以使用nmap、imap、vmap来定义映射仅在normal、insert、visual模式有效
暮雨
2018/10/09
3.1K0
vim 使用教程
2018 更新下vim 插件
周末网上晃荡看到一些关于 vim8 异步和插件的文章,觉得有些新功能挺实用的,所以花了点时间升级下自己的 vim 配置。 本文介绍一些使用到的实用插件以及参考配置。
orientlu
2018/09/13
2.6K0
2018 更新下vim 插件
优雅的在终端中编写Python
專 欄 ❈PytLab,Python 中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,蒙特卡洛算法等)与并行化 算法(MPI,OpenMP等多线程以及多进程并行化)以及python优化方法,经常使用C++给python写扩展。 blog:http://ipytlab.com github:https://github.com/PytLab ❈ 前言 最早我也只是在服务器上编辑文件的时候用用vim来改改程序,并没有把vim当做自己的主力
Python中文社区
2018/01/31
1.7K0
优雅的在终端中编写Python
「个人vim插件+配置」
复制代码时执行`set paste`来取消自动缩进,再`set nopaste`恢复。
饶文津
2020/06/02
1K0
vim使用-常用命令
vim里操作的是寄存器,不是系统剪贴板,默认我们使用d删除或者y复制的内容都是放到了“无名寄存器”。 比如交换字符小技巧:可以使用x将一个字符放到无名寄存器,然后p将无名寄存器里的内容进行粘贴,可以达到交换字符位置的一个目的。
茶半香初
2021/11/26
1.5K0
vim使用-常用命令
vimrc配色和快捷键【工具】
效果如下: 源码如下: 1 "    ___
sinnoo
2020/11/13
1.1K0
vimrc配色和快捷键【工具】
Vim的配置说明
在网上参考了某大牛个vim配置,然后更改添加了一部分,形成了自己的配置,让Vim变的更强大。
xindoo
2021/01/21
1K0
Vim 3 vimrc[通俗易懂]
vimrc 是 Vim 的配置文件, Vim 在启动时会加载 vimrc 文件, 你能想到的几乎所有的配置(包括主题, 快捷键, 插件设置等等), 都可以配置在 vimrc 中, 所以, vimrc 在 Vim 使用过程中有着至关重要的地位. Vim 是极其依赖 vimrc 配置的, 没有经过配置的 Vim 又丑又难用, 但是你如果懂得怎么配置, 就可以把 Vim 变成你想要的样子.
全栈程序员站长
2022/08/30
3.1K0
Ubuntu13.04配置:Vim+Syntastic+Vundle+YouCompleteMe
序言     使用Ubuntu和vim已经有一段时间了,对于Vim下的插件应用,我总是抱着一股狂热的态度。这次,又在网上闲逛着,发现了一个个人博客提到了Vim代码补全这回事,并提到了YouCompleteMe这个插件。顿时激起了我折腾的欲望。以前我都是使用Ctags+<C-n>或<C-p>来进行补全,然而其命中率却比较低,有时候根本就乱匹配。于是决定将YouCompleteMe这个插件安装好适用一下,同时,用Vundle也好让我将.vim文件夹下的文件清理一下. 一、准备 (1)相关链接 PPA for v
24K纯开源
2018/01/18
1.7K0
Ubuntu13.04配置:Vim+Syntastic+Vundle+YouCompleteMe
最近的 vim 配置
前段时间调整了vim配置,尝试了下python-mode这个集成的配置。最终还是以体验太差告终,主要在性能方面,可能是我的Air配置太Low了。经常出现噼里啪啦打完一堆代码,发现屏幕没反应,延时一段时间(可能是1、2秒)时候屏幕开始自动出现字符。当然除了性能问题之外,其他的PyMode已经处理的很好了。省去了装很多插件的麻烦。但问题是会帮你装上很多你用不到的插件。
the5fire
2019/03/01
7980
Windows安装WSL--Ubuntu
WSL(Ubuntu)将Ubuntu和Win10无缝连接起来,让开发人员可以不使用虚拟机,就轻松地在同一个系统中使用win10和Ubuntu,你可以用它代替Cywin32和babun.
php007
2019/11/28
3.8K0
Vim自动补全神器:YouCompleteMe
第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名。本来打算在实训期间来完成安装的,无奈网实在不给力,也就拖到了回家的时候。在开始准备工作的时候就了解到这个插件不是很容易安装,安装的时候果然名不虚传。(关于这方面的内容,请查看另一篇文章)不过,有付出总有回报,安装之后用上这个插件,真心为这个插件的强大所折服。 那这个插件有何不同? YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器。也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么。在Vi
小小科
2018/05/03
9.7K1
Vim自动补全神器:YouCompleteMe
相关推荐
VIM个性化配置(一)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文