之前在国外社区看到一个活动,感觉比较有意思。
主要的活动内容是,在一篇帖子下面,大家发自己的 vimrc,然后由别人来 review。可惜是英文的。
所以,我想在 V2EX 这里搞一个类似的中文活动。
目的在于和大家一起阅读学习下别人的 vimrc 配置。
可以将你的 vimrc 链接直接留在评论区,请注意,留的是某个 commit 下的 vimrc,避免后期你的修改影响别人 review。
感谢这么多人参加,我开了一个仓库,会在该仓库 issue 内讨论。
需要review vimrc 的,可以开issue。记住,请发某个commit的vimrc,不要直接发仓库地址。
1
orm 2018-03-16 07:28:27 +08:00 via iPhone
set number
|
2
Xibuka 2018-03-16 07:37:26 +08:00
|
3
SpaceVim OP @Xibuka 所以的 autocmd 应该放到一个 augroup 里,这样避免重复载入
augroup MyAutocmd au! autocmd VimEnter * call Foo() augroup END 后面你可以这样叠加, autocmd MyAutocmd FileType python call Foo() |
4
SpaceVim OP |
5
ericls 2018-03-16 07:44:48 +08:00
set rnu
|
8
SpaceVim OP @Xibuka 客气啦,我看了你的配置,算是非常中规中矩的,除了里面一些快捷键映射没有用 nore,其他没什么问题,另外就是 nordtree 插件配置那块,变量前缀 g: 尽量不要省略,虽然不会报错,但是一旦你将这些配置复制到 方法里,他就变动不一样意思了。方法内外变量的默认作用域不一样的。
|
9
BlockBlockBlock 2018-03-16 08:36:41 +08:00 via iPhone
虽然很久不用 vim 了,发点上古时期我的配置
https://github.com/bramblex/BlxVimrc |
10
SpaceVim OP @BlockBlockBlock 你这不是乔的吗?自己 V2EX 大号呢?我记得应该是自己造了一门语言,你这思路我看过,挺不错的,也是模块化的。
|
11
BlockBlockBlock 2018-03-16 08:45:06 +08:00 via iPhone
@SpaceVim 是我的啊,我大号炸了,所以开了个小号…
|
12
SamZeng 2018-03-16 08:45:55 +08:00
|
13
wweir 2018-03-16 08:49:49 +08:00
|
14
SpaceVim OP @SamZeng 你这没什么问题,主要都是 set 选项,不过你可以试试 local_vimrc 这个插件
|
16
SpaceVim OP |
17
yazoox 2018-03-16 09:09:20 +08:00
|
18
Jeremial 2018-03-16 09:11:25 +08:00
|
19
SpaceVim OP @yazoox
GetPWD 这个方法其实没有意义,里面替换那个方法实际上什么也没换。 vundle 这个管理器比较老了,而且你还是用原作者的仓库,那个仓库删了,自动重定向到了 vundlevim/vundle.vim nmap <Leader>ca :Calendar<cr> nmap <Leader>mr :MRU<cr> nmap <Leader>nt :NERDTree<cr> nmap <Leader>be :BufExplorer<cr> 类似这样的配置,可以改成 nnoremap |
20
SpaceVim OP @yazoox 自动关闭括号,可以用个插件,你那个每次都调用一次方法定义输入模式快捷键,显得浪费呀,索性你就定义一次。
我记得前面有个 vimrc 里面有个不错的解决方法,你可以找找。用的 `<expr>` 判断光标前后字符的。 |
21
SpaceVim OP |
22
SpaceVim OP @Jeremial iskeyword 这类选项建议用 ftplugin 写成 setlocal 毕竟不同语言关键字允许的字符不一样
|
23
SpaceVim OP |
24
uyhyygyug1234 2018-03-16 09:30:38 +08:00
问下楼主 我希望终端里面粘帖的时候不会自动插入智能缩进的回车。我现在是配置了一个快捷键关闭的。
参照的( http://vim.wikia.com/wiki/How_to_stop_auto_indenting ) 关闭注释自动 comment set formatoptions-=cro nnoremap [space]i :setl noai nocin nosi inde=<CR> 想问下怎么在 vimrc 里面配置。我直接在 vimrc 里面 setl noai nocin nosi inde 貌似没用。这个困扰我好久了。 (主要的用法是 windows 里面复制一个代码片段,然后通过 xshell 右键粘帖到远端服务器的 vim 中。希望保留原格式,不要插入注释,还有换行啥的) @SpaceVim |
25
SpaceVim OP @uyhyygyug1234 大片短复制到 Vim 可以用 "+p,或者如果你是想在输入模式下直接粘贴,你得先 set nopaste
|
27
uyhyygyug1234 2018-03-16 09:42:46 +08:00
@SpaceVim 恩应该是 输入模式下粘帖, "+p 是 linux 远端服务器上剪贴板内容的粘帖,我相当于是要把 win 上的内容,黏贴进 linux 中。你说的对!!!
|
28
SpaceVim OP @uyhyygyug1234 set paste 后,在输入模式直接粘贴效果会好一点
|
29
wweir 2018-03-16 09:57:11 +08:00 via Android
@SpaceVim 重新 source vimrc 是因为我的 vimrc 写了 plugin 环境的自安装功能,source 才能生效
<M-t> 这个自然是配合习惯来的,没啥可说的 xnoremap 还真得了解一下 |
30
codehz 2018-03-16 10:06:12 +08:00
@uyhyygyug1234 #24 我记得 neovim 有自带这个功能的支持。。
|
31
SpaceVim OP @wweir 没太看明白,正常情况下 vimrc 是可以自动读取的,你可以吧自动下载 plug 写在 vimrc 前面呀,可能你给的这个链接不是 vimrc 本身?
|
33
lemon0910 2018-03-16 10:26:26 +08:00
https://github.com/lemon0910/lemon-neovim 大家帮忙 review 一下,有什么问题
|
34
ablegao 2018-03-16 10:28:56 +08:00
|
35
Youthink 2018-03-16 10:38:05 +08:00
|
36
SpaceVim OP @lemon0910 https://github.com/lemon0910/lemon-neovim/blob/master/init.vim#L90-L107 这里的 autocmd 应该放到一个 group 里面。
https://github.com/lemon0910/lemon-neovim/blob/master/init.vim#L226-L228 针对 filetype 的 autocmd 里面的 set 应该用 setlocal https://github.com/lemon0910/lemon-neovim/blob/master/init.vim#L260-L270 这里应该用 noremap https://github.com/lemon0910/lemon-neovim/blob/master/init.vim#L260-L270 这一块应该包到一个 function 里面 用 autocmd Colorscheme * 来调用,不然,你在 vim 里面执行一个 colorscheme 命令换主题,你这些高亮设置就没有用了。 |
37
SpaceVim OP @ablegao 没发现什么问题,唯一是 这个方法
init.vim#L260-L270 里面,其实可以优化一下的,你可以直接 setline 参数用 list,而不是多次调用 setline,后面的 normal 命令 最好改成 normal! 加一个感叹号防止按键映射对这个命令有影响。 |
38
skywind3000 2018-03-16 23:15:26 +08:00
@lemon0910 配置不错啊,清爽,地道。
挑个骨头啊: vnoremap v <Esc> 其实不需要,visual mode 中按 v 本来就可以退出 visual mode,不需要再额外写一个, 你看 `:h index` 里面 visual mode 一节 |
39
SpaceVim OP @skywind3000 厉害,眼睛尖,我也不知道这个
|
40
mrytsr 2018-03-17 18:34:24 +08:00 via Android
|
41
yech1990 2018-03-18 14:23:59 +08:00
这几天修改的 spacevim 配置。
https://gist.github.com/anonymous/d202aacff5015bf9fc34815de35b2193 Fn 区没搞清楚系统用了哪些键,防止冲突把一些自定义函数给注释掉了。 |
42
SpaceVim OP @yech1990 不错,不过,我建议如果那些方法,你如果不需要直接去调用,可以用局部方法替换掉全局方法。比如
``` " task list new map <leader>tn :call New_Task_List()<cr> function! New_Task_List() if getline('.') =~ '^- \[ \]\ ' call append(line('.'), "- [ ] ") call cursor(line('.')+1, 0) startinsert! elseif getline('.') =~ '^- \[x\]\ ' call append(line('.'), "- [x] ") call cursor(line('.')+1, 0) startinsert! else echo "Not a item of task list!" endif endfunction ``` 这一段, 你可以改成: ``` " task list new noremap <leader>tn :call <sid>new_task_list()<cr> function! s:new_task_list() if getline('.') =~ '^- \[ \]\ ' call append(line('.'), "- [ ] ") call cursor(line('.')+1, 0) startinsert! elseif getline('.') =~ '^- \[x\]\ ' call append(line('.'), "- [x] ") call cursor(line('.')+1, 0) startinsert! else echo "Not a item of task list!" endif endfunction ``` 使用局部方法有这么一个好处,他不会污染你的补全内容,当你在命令行里面补全方法名时。为相信当你在命令行里面补全方法名时肯定不希望这些不想要的方法名出现,不让他们出现最好的方法就是不用全局方法。 |
43
xcai 2018-03-18 17:55:36 +08:00
@SpaceVim spacevim 的安装脚本中安装字体 Powerline 有一些貌似链接失效了,执行脚本完 在 ~/.local/share/fonts/ 目录下的字体大小不对,内部内容是 404 not found
|
45
kepbod 2018-03-23 01:17:51 +08:00
|
46
SpaceVim OP @kepbod 不建议直接在 vimrc 里面直接调用插件方法,当你第一次安装 Vim 环境时,这时候你所有插件都还没有下载,你直接调用的话会出现 unkown functinon 错误。
call asyncomplete#register_source 上面这段,如果你非要写在 vimrc 里面,可以用 try catch entry 包裹。 我看了另外一个问题,就是新建 数据缓存文件的哪个方法,你用的是 global 方法,建议写成脚本局部方法,因为这个方法你应该不会在其他地方调用,或者可以将方法定义释放掉。类似 变量 的 unlet。 |
47
SpaceVim OP @kepbod 我看你定义了这段,
autocmd BufWritePost $MYVIMRC source $MYVIMRC 自动读取 vimrc,当写入这个文件时! 其实你无非是想他读取你的一些 set 选项,插件链表更新,应该不会读取,我不太了解 vim-plug 是否支持这个,如果不支持,你可以判定是不是 vim 初次启动,如果初次启动就读取 vim 插件列表设置。可以用 has('vim_starting') 测试。 |
48
327beckham 2018-04-03 09:11:50 +08:00
哇,请大神看看我的 https://gist.github.com/yyq/b701e781b00822fb41f271eef42c9767, 我这是东拼西凑来的,可能有点繁杂
|
49
SpaceVim OP map <silent> <C-n> :NERDTreeToggle<CR>
let NERDTreeShowHidden=1 autocmd vimenter * if !argc() | NERDTree | endif @327beckham 没什么大问题,不过上面三行,时三种代表性的问题, 1. 映射尽可能用 noremap 2. g: 全局变量前缀不能省掉,虽然不会出问题,但是当下次你想重构 vimrc 将这些脚本复制到一个方法内时,这些设置就无效了。 3. autocmd 要放到 augroup 里 |
50
xiaohanqing 2018-04-09 10:31:15 +08:00
|
51
xiaohanqing 2018-04-09 11:07:15 +08:00
|
52
lzyfred 2018-05-25 08:33:34 +08:00
电报超好用啊。linux 用户表示很开心。
|
53
fcymk2 2018-06-18 00:52:11 +08:00
|