大半夜的发下 vim 配置更新[k-vim], 有兴趣的 vimer 可以看看
- 0次
- 2021-07-15 15:57:11
- idczone
vim入坑三年了, 每隔个半年就来磨下刀, 还搞到半夜(我是有多无聊-_-#)
链接 https://github.com/wklken/k-vim
这次更新完成了很多细节/问题, 包括ycm/ultisnips等, 主要是半年多使用不爽的地方基本都修了一遍.
最大的变化时砍掉了buffer, 全面tab[话说之前用的是iterm2的tab, 切来切去切晕了]
有兴趣可以看看哈, 文档细节明天补......
lz 技术栈和我差不多,先 mark 一下。
感谢楼主,一直以来使用的都是你的vim配置!!!
楼主辛苦了!
这个配置的代码跳转到定义等功能有吗?主要是写 Python,需要能在不同文件之间跳转定义,不同文件之间的跳转在 vsplit 打开(tab 用不习惯,外接显示器的时候还是 sp/vsp 比较舒服)。
,gd可以到定义处, 但是只能在本文件内跳......我也遇到这个问题, 暂时没解决
我也是用外接屏, sp/vsp每次都手动敲
现在切tab的原因是, 有整体项目全局的概念, 而不是纯手工sp/vsp
即使没有使用tab, 目前nerdtree和ctrlspace都支持快速选中后分屏打开(nerdtree: i/s, ctrlspace: v/V/s/S)
可以搞下来玩下, 欢迎拍砖
试过 YCM 之后又换回 jedi-vim 了,jedi-vim 的跳转到定义很好用,可以自定义是用 tab 还是 split.
搞定了, 已经上传.....可以考虑换回YCM了:)
" 跳转到定义处, 分屏打开
let g:ycm_goto_buffer_command = 'horizontal-split'
nnoremap jd :YcmCompleter GoToDefinition
nnoremap gd :YcmCompleter GoToDeclaration
感觉目前 unite比较火。
ctrlspace感觉比较乱。
我倒是觉得unite太重了, ctrlspace刚看的时候配置的确够复杂的(文档问题), 但是用了下基本功能还算简单
ctrlp已经不再维护了,可以考虑替换为另一个用户维护的版本
地址: https://github.com/ctrlpvim/ctrlp.vim
几个用户维护的版本,维护者包括zencoding的作者等几个人,另外我翻译了ctrlp的文档,已被合并进去
在github上提了issue
忍不住点赞.
很早就已经搞下来玩了。很赞,同时可以附带一些无插件 vim 技巧,会更棒。例如列编辑之类的。
注意, 以下 `,` 代表 这个啥意思啊 虽然也一直用vim 但没怎么配置过.....
你可以理解为一系列组合快捷键的第一个键位, 默认是"\", 配置中改键位为','(能更快地触发)
7. tab操作(重点推)
ctrl+t 新建一个tab
(hjkl)
,th 切第1个tab
,tl 切最后一个tab
,tj 下一个tab
,tk 前一个tab
我按下了,th没有反应啊
谢谢 配置不错 插件很赞
,th 有反应的前提: 已经新建了多个tab(这个是tab操作)
简直。。。。。。That's what I want. 0.0
有一点请教ctrlp自带一个'tag', 'buffertag'是用来找函数的, 那么自带的跟ctrlp-funky有啥区别呢?
还有一个问题,你是怎么强制使用tab的呢?一般插件比如ack.vim, nerdtree都是新建一个buffer,怎么让他新建tab呢。
ctrlp-funky扩展和'buffertag'其实没啥区别, 只是使用上会更友好(个人感觉)
没有强制tab, nerdtree, 使用 jistr/vim-nerdtree-tabs 扩展使得所有tab的nerdtree窗口一致, 打开还是使用buffer, 只是推荐使用s/v进行分屏打开(原来是i/s, 改键). ctrlp也是ctrl+x/v进行分屏buffer.
(nerdtree/ctrlp我认为是当前workspace的导航作用, 所以目前没有尝试在新tab打开, 可以去看看文档, 可能是支持的)
嗯 我还得多熟练熟练
一向认为vimer是不应该钟情netrw或nerdtree的
如果开始偏爱Tab了,就试试VimR吧~
新增tab操作/nerdtree只是为了解决一些项目全局上查看/定位/编辑的问题, 非刻意处理(仅解决痛点.....).
VimR试用过, 个人还是偏好全命令行的方式:) 工作流顺畅些
提示/usr/share/vim/..../syntax.vim找不到是怎么回事?语法高亮为什么会自动找到这个目录来的,本机上/usr/share/下没有vim这个目录
貌似是markdown的插件导致的
bundle/vim-markdown/Makefile:1:VIMDIR=/usr/share/vim
bundle/vundle/CONTRIBUTING.md:108: fall-back for $VIM: "/usr/share/vim"
============
貌似目的是拷贝插件的文件到/usr/share/vim
可以先去掉这个插件
处理 function UltiSnips时发生错误:
第 28 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
第 29 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
第 30 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
第 32 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
第 33 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
第 34 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
第 35 行:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
打开某个目录下的py文件会发现这个错误, 但是别的地方的py文件又没有报错 什么原因呢
可能是打开的这个 python 文件名和某个标准库名一致貌似会导致这个问题, 一直没有找到解决方法>_<#
但是我在上层目录 用 vim dir/xxx.py 打开这个py文件就没问题, 在当前目录打开就有问题。。。。
是这样子的, 暂无解决办法:(
楼主目前有什么插件,可以实现在看代码的时候在preview中显示这个函数的定义呢?
类似ycm自动补全在补全的时候显示的preview窗口,只不过我不需要自动补全,我需要查看光标所在位置这个函数的信息。
这个就是 说的原因;
比如目录:
task/
sysconfig.py
此时你待在task文件夹下,使用vim打开sysconfig.py就会出现上述的异常.
因为我们打开vim(常常包含各种插件)会调用一些python写的的插件,而如果这些python写的插件恰好用到了某个库/文件(如例子中的sysconfig),那么根据python的寻库(按照sys.path顺序)方式,显然当前文件夹会被优先拜访,而sysconfig文件就中招了,导致vim插件出现异常,也就会出现上面所说的异常;
而你在上层目录时候,sys.path中是不会包含dir/* 这级目录的,所以就没问题了.
出现这个问题,就跑去其他目录,打开ipython,import dir下面的几个文件名,如果出现没报异常的就说明名称被占用了占用了,dir下某个文件名字有问题...其实大多说时候看看就能瞅出来是否命名占用了.
今天我也遇到这个问题了...说的好绕