legolas-vim

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

支持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

删除指定范围内的行

咖啡

收到几个网友请喝咖啡的私信

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

  1. linux python开发环境_如何在Linux系统中搭建Python编程环境

    1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...

  2. eclipse配置python开发环境_如何在Eclipse中配置python开发环境

    展开全部 步骤1: 下载用于在2113Eclipse中开发Python的插件PyDev. 步骤2: 解压5261python.将解压后的features和plugins文件4102夹中的1653内容拷 ...

  3. mac如何安装python_手把手教你安装Python开发环境(二)之Mac电脑安装Python解释器...

    Mac电脑使用的操作系统为OSX,系统本身自带Python2.X的解释器.但目前主流的Python核心系统是3.X,所以我们建议都安装最新的版本进行操作.以下就是Python3.X解释器在Mac电脑上 ...

  4. 从零开始,教你如何安装、配置Python开发环境,Python入门安装教程,超级详细

    近日,我鼓起勇气从头开始正儿八经地配置一个更轻量.更趁手的 Python 开发环境.经过一番折腾,我比较顺利地在 Windows 10 上配置了一个比较满意的 Python 环境: 安装稳定版本的 P ...

  5. python开发环境推荐_推荐一款Python开发环境管理神器

    在 Python 开发中,有些情况下,我们可能面临在一台机器上同时安装多版本Python的需求.比如: 有多个Python项目,每个项目依赖不同的Python版本. 有一个Python项目,它需要同时 ...

  6. Eclipse+Pydev搭建Python开发环境教程

    Eclipse+Pydev搭建Python开发环境教程 Eclipse+Pydev搭建Python开发环境 PyDev简介 准备文件 Jdk配置,1.8版本 python-2.7.18安装 Eclip ...

  7. python第一部分:Eclipse和PyDev搭建python开发环境

                   Eclipse和PyDev搭建python开发环境 1.1总体目标 本文档作为python学习者的入门教程,通过本教程可以了解python用途.语法.在实际工作中的应 ...

  8. PyCharm搭建Python开发环境

    PyCharm搭建Python开发环境 PyCharm搭建Python开发环境 Python安装 PyCharm下载 PyCharm安装 创建hello world示例进行环境测试 PyCharm搭建 ...

  9. python开发环境有哪些特点_快速了解Python开发环境Spyder

    Spyder简介 Spyder (前身是 Pydee) 是一个强大的交互式 Python 语言开发环境,提供高级的代码编辑.交互测试.调试等特性,支持包括 Windows.Linux 和 OS X 系 ...

最新文章

  1. java 并发队列_JAVA并发编程:阻塞队列BlockingQueue之SynchronousQueue
  2. python自学流程-各个阶段的python学习路线?
  3. RCC—使用 HSE/HIS 配置时钟
  4. Yen 的k_shortest paths 算法的C++实现
  5. Netty源码学习(零)前言
  6. 预训练模型的前世今生(有福利!)
  7. mysql8 设置了默认值 CURRENT_TIMESTAMP 依然报null问题
  8. 实验2-2-3 计算存款利息 (10 分)
  9. leaflet 的 marker 弹框 iframe 嵌套代码
  10. HTML5模板生成工具
  11. 增加window服务器,Windows Server2012入门-添加服务器角色和功能
  12. 扫码点菜系统代码_一顿火锅吃出474万天价?扫码点餐时,千万不要这样做
  13. 如何在PR中同步音频和视频
  14. 如何用邮件客户端收发电子邮件,如何配置邮件客户端?
  15. Flash速度与加速度公式
  16. 兄弟hl3150cdn打印测试页6_兄弟3150CDN彩色激光打印机
  17. 分治法:快速排序棋盘覆盖
  18. 计算机专硕_平均分369分!这所985大学计算机专硕!
  19. 机器人控制系统——LCM
  20. windows server 2012 安装 vmware报错处理缺少Microsoft更新KB2919355

热门文章

  1. uboot的一般性介绍
  2. Leetcode 771. Jewels and Stones
  3. 前端MVC框架之 Angular
  4. POJ 2395 Out of Hay
  5. 常见排序算法的C#实现
  6. 02-合并frame
  7. jquery datatable设置垂直滚动后,表头(th)错位问题
  8. SQL Server 和 Oracle 以及 MySQL 有哪些区别?
  9. linux上安装telnet服务器:linux vmvare虚拟机 安装telnet redhat9
  10. CPU加了缓存后,有人急了~