vim配置python开发环境_GitHub - TTWShell/legolas-vim: Vim配置,为python、go开发者打造的IDE。...

legolas-vim

68747470733a2f2f7472617669732d63692e6f72672f5454575368656c6c2f6c65676f6c61732d76696d2e7376673f6272616e63683d6d6173746572

个人vim配置。支持python、go等自动提示,支持python、go的函数跳转(python支持虚拟环境)。 最终效果图(函数列表的feature已移除,因为大项目会导致性能问题):

30623828-ab21327e-9dec-11e7-89e7-09b2645a987c.png

支持Python自动补全的最好插件是YouCompleteMe。而YouCompleteMe需要比较高版本的vim(>=7.4.143),所以,需要编译安装vim,参见相关文档[1]。另外还需要一些C库,参见相关文档[2]。

vim扩展管理器使用的是异步工具vim-plug。

由于是为python开发打造。默认安装了pip等py开发必需品。公用开发工具默认安装(brew、zsh等)。

Install & Update

支持Ubuntu、Centos(需要先处理下问题5 sudo vim的问题)、Mac OSX(默认基于brew安装新版vim),一键安装:

cd ~ && rm -rf legolas-vim && git clone https://github.com/TTWShell/legolas-vim.git && cd legolas-vim && bash install.sh INIT

如果用户修改了vimrc配置文件,运行以下命令更新即可:

./install-plugins.sh install

升级插件:

./install-plugins.sh update

重新build YCM(参数自定义):

./install-plugins.sh rebuild --clang-completer --gocode-completer

安装完成后后,可以通过修改HOME目录下的.vimrc.local来覆盖默认的vimrc配置。

问题集锦

安装过程中打开vim可能会提示找不到syntax.vim或者配色。syntax做一下ln s 操作即可。配色安装完毕会自动解决。

mac上有好用的brew。可以直接安装8.0以上版本的vim。可参考Mac环境配置及python包安装的那些坑:

brew update

export PATH=/usr/local/bin:$PATH # 在/etc/profile 添加一下语句(使用zsh的在~/.zshrc添加即可)

mac由于并没有直接替换系统自带的vim。所以其他需要vim支持的工具需要修改配置。例如git:

git config --global core.editor "/usr/local/bin/vim"

关于字体

powerline-fonts已经去掉了monaco_for_powerline。但是iterm2默认字体monaco非常好看,为了使用monaco并解决特殊符号乱码问题,所以Backup了一份。会自动安装。用户手动设置下iterm2字体配置即可(可搜索)。

关于centos 使用sudo的问题(sudo: vim: command not found)

局域网安装问题

箭头不是真的有箭头,只是把tab显示为箭头,为的是查错方便,这样一眼就能看到有tab,而不是等到执行程序时候发现报错;

文件本身有tab、使用paste模式复制了代码、在paste模式使用整体缩进快捷键才会引入tab;

把tab一键替换为4空格的方法:

:retab

:w 保存文件可能会慢的情况,F6关闭语法检查。

golang第三方库自动补全无效:

执行vim-go命令 :GoInstallBinaries即可修复,可能报错:

错误信息: vim-go: gogetdoc not found. Installing github.com/zmb3/gogetdoc to folder /usr/local/opt/go/libexec/bin

xxx timeout

可能的原因是PATH配置错误,需要加上$GOPATH/bin。即:

git clone https://github.com/golang/tools $GOPATH/golang.org/x/tools # 直接安装gotools

export PATH=$GOPATH/bin:$PATH

怎么关闭文档实时预览:

If you don't want this window to ever show up, add set completeopt-=preview to your vimrc. Also make sure that the g:ycm_add_preview_to_completeopt option is set to 0.

在vim启动时提示 The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected exit code -11. Type ':YcmToggleLogs ycmd_52907_stderr_R736k6.log' to check the logs:

可能是因为安装脚本使用的是anaconda提供的python编译YouCompleteMe导致的,暂时修改环境变量让python命令指向的不是anaconda的python或者修改install-plugin.sh里面rebuild函数中的python install.py将python改为绝对路径均可。相关issue

关于其他插件使用问题,建议直接查询文档,如果你觉得是一个常见问题/需要花时间去处理的问题,欢迎提pr,我会审核,然后合并到master。

快捷键说明

NERDTree有按横向纵向布局模式打开文件的快捷,直接看help信息即可。

tab切换使用ngt即可。例如切换到第二个tab页,输入2gt。

支持pycharm中的代码块缩进操作(使用tab、s-Tab)。

支持全局搜索替换(多个文件搜索替换)。

自定义快捷键

命令

说明

sv

打开一个文件,纵向分割布局(新文件会在当前文件下方界面打开)

vs

横向分割布局(新文件会在当前文件右侧界面打开)

Ctrl-h

切换到左侧的分割窗口

Ctrl-j

切换到下方的分割窗口

Ctrl-l

切换到右侧的分割窗口

Ctrl-k

切换到上方的分割窗口

Alt-h

减小当前窗口的宽度

Alt-j

减小当前窗口的高度

Alt-l

增加当前窗口的高度

Alt-k

增加当前窗口的宽度

Ctrl-g

跳转到函数定义或者声明

Ctrl-y,

emmet自动补全快捷

--

--

F2

打开or关闭行号,同时打开or关闭gitgutter(文件变化提示)

F3

打开or关闭复制支持

F4

折叠or展开代码(默认打开文件不折叠)

F5

打开or关闭目录树

F6

打开or关闭语法检查(大文件时影响性能)

F7

flake8 check

F8

Glog,展示文件的git history

F9

配合Glog,查看文件前一个版本

f10

配合Glog,查看文件后一个版本

--

--

space

折叠/展开代码

--

--

Shift-i

目录是否显示隐藏文件(NERDTree)。便于git开发,默认永远不显示.git。

跳转

命令

说明

Ctrl-o

jump back to where you where before invoking the command 和 Ctrl-g、ctrl-i 配合使用

ctrl-i

jump forward

ctrl-^

跳转到上一个编辑的文件

--

--

zz

move current line to the middle of the screen

zt

move current line to the top of the screen

zb

move current line to the bottom of the screen

搜索

命令

说明

:/pattern

搜索所有包含pattern的单词(向上搜索)

:?pattern

搜索所有包含pattern的单词(向下搜索)

n

朝同一方向搜索

N

反方向搜索

:/ pattern

单词前加空格,精确匹配

:/^pattern

搜索仅在行首出现

:/pattern$

搜索仅在行末出现

\^ \$

特殊字符的搜索加反斜杠

搜索替换

命令

说明

:s/foo/bar/g

Change each 'foo' to 'bar' in the current line.

:%s/foo/bar/g

Change each 'foo' to 'bar' in all the lines.

:5,12s/foo/bar/g

Change each 'foo' to 'bar' for all lines from line 5 to line 12 (inclusive).

:'a,'bs/foo/bar/g

Change each 'foo' to 'bar' for all lines from mark a to mark b inclusive (see Note below).

:'<,'>s/foo/bar/g

When compiled with +visual, change each 'foo' to 'bar' for all lines within a visual selection. Vim automatically appends the visual selection range ('<,'>) for any ex command when you select an area and enter :. Also, see Note below.

:.,$s/foo/bar/g

Change each 'foo' to 'bar' for all lines from the current line (.) to the last line ($) inclusive.

:.,+2s/foo/bar/g

Change each 'foo' to 'bar' for the current line (.) and the two next lines (+2).

:g/^baz/s/foo/bar/g

Change each 'foo' to 'bar' in each line starting with 'baz'.

--

--

:arg *.py

All *.py files in current directory.

:argadd *.md

And all *.md files.

:arg

Optional: Display the current arglist.

:argdo %s/pattern/replace/ge | update

Search and replace in all files in arglist.

删除

命令

说明

x

删除当前光标处的字符

X

删除光标左边的字符

D

删除从当前光标到本行末尾的字符

J

删除两行之间的换行符 (亦可用于合并两行)

dmove

删除从当前光标到move所给位置的字符

dd

删除当前行

:lined

删除指定行

:line,lined

删除指定范围内的行

咖啡

收到几个网友请喝咖啡的私信😊😊😊,附上支付宝。

alipay.jpg

相关文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

平面设计中的网格系统pdf_平面设计基础知识

导语&#xff1a;“ 给大家推荐优质书籍&#xff0c;包含平面设计基础入门知识的书籍分享”。平面设计基础知识分享书籍名称&#xff1a;《写给大家看的设计书》作者&#xff1a;[美]罗宾威廉姆斯著平面设计的四个原则&#xff1a;复杂的设计原理在《写给大家看的设计书》中凝炼…

LeetCode 1814. 统计一个数组中好对子的数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums &#xff0c;数组中只包含非负整数。 定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。 比方说 rev(123) 321 &#xff0c; rev(120) 21 。我们称满足下面条件的下标对 (i, j) 是 好的 &#xff1a; 0 < i <…

如何看当前windows是utf8还是gbk_监理工程师5月份出教材,现在如何备考?

监理工程师教材预计5月份出版&#xff0c;相信考生都知道监理工程师教材对于考生复习的重要性&#xff0c;那么现在考生应该如何学习呢?听小编给你说一说。教材没有发布之前怎么学习?教材改动比较大&#xff0c;没有发布之前我们就不要学习了么?小编不这么认为&#xff0c;监…

巧用Hint

一般计算fibonacci的方法&#xff1a; 1 def fibonacci (n): 2 if n 0 or n 1: 3 return 1 4 else: 5 return fibonacci(n-1) fibonacci(n-2) 这样的 call graph for fibonacci with n4: 当计算 fibonacci(30)的时候还可以&#xff0c;当计算 fibon…

LeetCode 1816. 截断句子

文章目录1. 题目2. 解题1. 题目 句子 是一个单词列表&#xff0c;列表中的单词之间用单个空格隔开&#xff0c;且不存在前导或尾随空格。每个单词仅由大小写英文字母组成&#xff08;不含标点符号&#xff09;。 例如&#xff0c;"Hello World"、"HELLO"…

脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

点上方蓝字关注公众号&#xff0c;坚持每天技术打卡学网络&#xff0c;就在IE-LAB国内最著名的高端网络工程师培养基地QOS是网络服务质量技术&#xff0c;是所有考试中都会有的考点&#xff0c;主要在SP的课程中详述&#xff0c;是高中低级的网工都有必要了解的技术。今天我们来…

LeetCode 1817. 查找用户活跃分钟数(哈希)

文章目录1. 题目2. 解题1. 题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数 k 。 日志用一个二维整数数组 logs 表示&#xff0c;其中每个 logs[i] [IDi, timei] 表示 ID 为 IDi 的用户在 timei 分钟时执行了某个操作。 多个用户 可以同时执行操作&#xff0c;单…

日期传递过程_买东西别再只看生产日期和保质期了!快算算你一天吃了多少添加剂?...

开始今天的科普前&#xff0c;微医君先和大家讲一下我们办公室上周出现的“假”全麦面包事件。全麦面包是很多减肥人士最热衷的食物之一&#xff0c;小A也不例外。结果上周微医君帮她买面包时&#xff0c;就发现小A平时经常买的全麦面包是“假”的。为什么明明包装上写着“全麦…

第二次打开不是最大_舵手图解:大盘日线第二次形成买点信号

吾股舵手个人微信公众号&#xff1a;股民读书会&#xff08;ID&#xff1a;gumindushuihui&#xff09;声明&#xff1a;只做客观解读&#xff0c;不做主观预测&#xff0c;仅供参考&#xff0c;不作交易依据。择时看大盘&#xff0c;选股看行业。股票咨询请在文末留言。大盘涨…

Window phone用手机来控制电脑的多媒体播放

为了用电脑看电影时方便控制&#xff0c;我就突发其想&#xff0c;做一个手机app来通过无线网络远程调节电脑上的音量。后来进行尝试成功后&#xff0c;我就想&#xff0c;光是调音量似乎单调了些&#xff0c;就把播放/暂停&#xff0c;上一首&#xff0c;下一首&#xff0c;等…

华为正式发布鸿蒙智慧屏,5499 元、21999 元,2021 款华为智慧屏 V55/V85 明日 0 点正式开售:搭载鸿蒙系统...

IT之家 5 月 28 日消息 在今年 4 月份的华为全屋智能及智慧屏旗舰新品发布会上&#xff0c;华为智慧屏 V 系列 2021 款正式发布。新产品外观更加简洁&#xff0c;底部音响组件进一步隐藏&#xff0c;同时依旧采用弹出式 2400 万像素 AI 摄像头。今天&#xff0c;华为官方宣布&a…

LeetCode 1818. 绝对差值和(二分查找)

文章目录1. 题目2. 解题前三题&#xff0c;拼手速。最后一题暴力超时。1. 题目 给你两个正整数数组 nums1 和 nums2 &#xff0c;数组的长度都是 n 。 数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|&#xff08;0 < i < n&#xff09;的 总和&a…

LeetCode 1819. 序列中不同最大公约数的数目

文章目录1. 题目2. 解题1. 题目 给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如&#xff0c;序列 [4,6,16] 的最大公约数是 2 。 数组的一个 子序列 本质是一个序列&#xff0c;可以通过删除数组中的某些元素…

1803无法升级到2004_汽车排放国标是什么意思:1/2/3/4/5/6的升级是为了什么?

全球各大汽车工业强国或地区都有汽车排放制造标准&#xff0c;知名度较高的有以下四组。美标欧标日标国标在上述标准中欧洲与日本开始实施的节点比较早&#xff0c;美国轻型汽车排放法规「Tier」与上世纪90年代开始实施&#xff0c;国标则是从2000年才开始。之所以要为汽车制造…

LeetCode LCP 28. 采购方案(排序 + 二分查找)

文章目录1. 题目2. 解题1. 题目 小力将 N 个零件的报价存于数组 nums。 小力预算为 target&#xff0c;假定小力仅购买两个零件&#xff0c;要求购买零件的花费不超过预算&#xff0c;请问他有多少种采购方案。 注意&#xff1a;答案需要以 1e9 7 (1000000007) 为底取模&…

@service注解_Spring 中 @Component、@Service 等注解如何被解析?

前言Component和Service都是工作中常用的注解&#xff0c;Spring如何解析&#xff1f;1.Component解析流程找入口Spring Framework2.0开始&#xff0c;引入可扩展的XML编程机制&#xff0c;该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpat…

svg载入html,SVG系列教程:SVG简介与嵌入HTML页面的方式

随着技术向前的推进&#xff0c;SVG相关的讨论也越渐频繁。为了紧跟时代的步伐&#xff0c;我也开始步入SVG相关技术的探索与学习之中。从这篇文章开始会在W3cplus站点上陆续向大家推出有关于SVG相关的教程、译文或案例等。感兴趣的同学可以跟随着教程一起了解与学习SVG相关的知…

LeetCode LCP 30. 魔塔游戏(优先队列)

文章目录1. 题目2. 解题1. 题目 小扣当前位于魔塔游戏第一层&#xff0c;共有 N 个房间&#xff0c;编号为 0 ~ N-1。 每个房间的补血道具/怪物对于血量影响记于数组 nums&#xff0c;其中&#xff1a; 正数表示道具补血数值&#xff0c;即血量增加对应数值&#xff1b;负数表…

字符变量赋值规则_Java的常量、变量、数据类型(基础篇二)

标识符标识符&#xff1a;是指在程序中自己定义的内容&#xff0c;如类名、方法名、变量名等等。命名规则&#xff1a;是有硬性要求的关键字&#xff1a;是指Java已经定义好的单词&#xff0c;具有特殊含义&#xff0c;比如public、static、class、void等等标识符可以包含英文字…

selenium定位输入框_[Selenium 粗浅笔记] 用Selenium填写表单

要做什么Steiner&#xff1a;[Selenium] 简单介绍​zhuanlan.zhihu.com我们用刚才学到的知识去用selenium来模拟与表单交互&#xff0c;还好有个可以练习的网站 test website 拿这个网站来试试输入用户名&#xff0c;密码ps: 其实这个自己在本地写个网页就行了&#xff0c;ajax…