全民阅读 vimrc

2018-03-16 06:58:36 +08:00
 SpaceVim

活动介绍

之前在国外社区看到一个活动,感觉比较有意思。

主要的活动内容是,在一篇帖子下面,大家发自己的 vimrc,然后由别人来 review。可惜是英文的。

所以,我想在 V2EX 这里搞一个类似的中文活动。

目的在于和大家一起阅读学习下别人的 vimrc 配置。

如何参与?

可以将你的 vimrc 链接直接留在评论区,请注意,留的是某个 commit 下的 vimrc,避免后期你的修改影响别人 review。

6950 次点击
所在节点    Vim
53 条回复
yech1990
2018-03-18 14:23:59 +08:00
这几天修改的 spacevim 配置。

https://gist.github.com/anonymous/d202aacff5015bf9fc34815de35b2193

Fn 区没搞清楚系统用了哪些键,防止冲突把一些自定义函数给注释掉了。
SpaceVim
2018-03-18 15:57:25 +08:00
@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
```

使用局部方法有这么一个好处,他不会污染你的补全内容,当你在命令行里面补全方法名时。为相信当你在命令行里面补全方法名时肯定不希望这些不想要的方法名出现,不让他们出现最好的方法就是不用全局方法。
xcai
2018-03-18 17:55:36 +08:00
@SpaceVim spacevim 的安装脚本中安装字体 Powerline 有一些貌似链接失效了,执行脚本完 在 ~/.local/share/fonts/ 目录下的字体大小不对,内部内容是 404 not found
SpaceVim
2018-03-18 18:30:36 +08:00
@xcai 建议用 issue 提交问题,不过还是感谢你了,我晚点看下
kepbod
2018-03-23 01:17:51 +08:00
SpaceVim
2018-03-23 13:44:41 +08:00
@kepbod 不建议直接在 vimrc 里面直接调用插件方法,当你第一次安装 Vim 环境时,这时候你所有插件都还没有下载,你直接调用的话会出现 unkown functinon 错误。

call asyncomplete#register_source

上面这段,如果你非要写在 vimrc 里面,可以用 try catch entry 包裹。

我看了另外一个问题,就是新建 数据缓存文件的哪个方法,你用的是 global 方法,建议写成脚本局部方法,因为这个方法你应该不会在其他地方调用,或者可以将方法定义释放掉。类似 变量 的 unlet。
SpaceVim
2018-03-23 13:54:36 +08:00
@kepbod 我看你定义了这段,
autocmd BufWritePost $MYVIMRC source $MYVIMRC

自动读取 vimrc,当写入这个文件时!

其实你无非是想他读取你的一些 set 选项,插件链表更新,应该不会读取,我不太了解 vim-plug 是否支持这个,如果不支持,你可以判定是不是 vim 初次启动,如果初次启动就读取 vim 插件列表设置。可以用 has('vim_starting') 测试。
327beckham
2018-04-03 09:11:50 +08:00
哇,请大神看看我的 https://gist.github.com/yyq/b701e781b00822fb41f271eef42c9767, 我这是东拼西凑来的,可能有点繁杂
SpaceVim
2018-04-06 20:03:09 +08:00
map <silent> <C-n> :NERDTreeToggle<CR>
let NERDTreeShowHidden=1
autocmd vimenter * if !argc() | NERDTree | endif

@327beckham
没什么大问题,不过上面三行,时三种代表性的问题,

1. 映射尽可能用 noremap
2. g: 全局变量前缀不能省掉,虽然不会出问题,但是当下次你想重构 vimrc 将这些脚本复制到一个方法内时,这些设置就无效了。
3. autocmd 要放到 augroup 里
xiaohanqing
2018-04-09 10:31:15 +08:00
@Xibuka
map <F7> mzgg=G`z
这一句有副作用,可以考虑用 winsaveview 和 winrestview 去替代 marks
xiaohanqing
2018-04-09 11:07:15 +08:00
lzyfred
2018-05-25 08:33:34 +08:00
电报超好用啊。linux 用户表示很开心。
fcymk2
2018-06-18 00:52:11 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/438522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX