linux vi刷新页面,vim的神级配置 - bubifengyun的个人页面 - OSCHINA - 中文开源技术交流社区...
有传言:vim是编辑器之神,(xxx)是神之编辑器。意思就是说vim是编辑器中最好的,而一般的大神级别的人都是使用(xxx)这个编辑器。咱不是神人,就使用vim吧。该配置是从别处搞来的,并作了部分修改,在此向这么大一个群体表示感谢。
1. 下载
配置文件由于太大,只好在CSDN下载,下载链接在下方。最新版本压缩包下包含.vimrc文件和.vim文件夹。linux下,避免对原有配置造成,请先备份你~/下的.vimrc和.vim,把下载好的文件解压缩在~下即可,然后进入前期准备。
2. 前期准备
需要已经安装vim软件及ctags,cscope插件了。如果没有安装,
Debian系请
sudo apt-get install vim exuberant-ctags cscope
Redhat系请
sudo yum install vim ctags cscope ctags-etags
如果提示需要安装其他软件,请自行安装并在下面留言,谢谢。如果没有其他问题,现在就可以使用了。
参考这里,加入了对 python3 和 perl 的支持。
# cd /opt
# git clone https://github.com/vim/vim.git
# cd vim
# ./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp=yes \
--enable-python3interp=yes \
--enable-perlinterp=yes
# make install
3. 部分操作示例
工作环境Deepin2014.3,vim7.4。设在目录~/sources下含有test1.c, test2.c, test3.c, test4.c等文件。
3.1 常用操作
常用操作最好的学习办法是找个vim的操作图作为桌面。
1. 跳转到sources文件夹。
cd ~/sources
2. 以标签栏的形式打开多个文件,弹出各个文件后,你可以像浏览器标签栏一样鼠标点击打开每个文件。 对于用 -p 打开的标签页,可以使用 gt,gT可以左切换右切换,也可以使用数字1,2,n,+gt.
例如你想切换到第5个标签页,就可以使用 5gt,意思是按下5,g,t键就可以了。
vim -p test1.c test2.c test3.c
如果你还想继续打开其他文件,是你已经在vim文件了,可以使用下面的命令。
:tabnew test4.c
3. 打开目录栏和变量栏。
vim命令模式下,按F8键会在左侧出现当前文件所在的目录栏。目录栏最上方提示了怎么操作,这里不在赘述。如果想回到文件栏,可以直接鼠标点击文件栏,也可以使用Ctrl+h,j,k,l等实现在栏里左右上下跳转。
vim命令模式下,先后按tb两个键会弹出变量栏。与目录栏类似。
4. 对于编辑,可以使用u,ctrl+r分别为撤销和反撤销。但是需要注意这个都是小写的。有次不小心按了大写键,导致U键删除了不少东西。取消大写键才实现的撤销。
5. 自动缩进排版。
通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是正整数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。gg=G,该命令慎用。因为有些格式可能跟vim设置的不一致,所以最好只对部分行使用,避免不必要的格式不一致。
6. 折叠。
实现空格键折叠或打开相邻相同缩进的若干行代码,对于低层次的缩进会把高层次的缩进包含进去。类似目录那种形式。
7. 多行操作。
加入了https://github.com/terryma/vim-multiple-cursors的多行选择功能。下面说明多行选择的做法,翻译自该网址。比较关心的选择多个同样的单词,换成其他单词。以及在每行开头插入注释。更多说明,见上面的网址。
(7.1) 选择多个相同单词。插件默认的快捷键是Ctrl+n,在norml mode,选择要改变的一个单词,反复按Ctrl+n,就可以把他们都选择了。Ctrl+p向上取消选择,Ctrl+x放弃下一个。多选后,用c,s或者i,a等改变。ESC退出该模式。
(7.2) 多行加注释。原插件功能很强大,但是我只需要这个。鼠标选择多行,或者V进入视图模式选择。按Ctrl+n,加载多行插件,就可以相当于一行的模式了。
3.2 源码小项目的操作
由于配置加入了easytags插件,大项目中会严重降低vim的速度。如果该配置让你的vim变慢了,多半是easytags惹的祸,在~/.vim/bundle/文件夹下,移除vim-easytags和vim-misc两文件夹,并注释掉~/.vimrc文件里easytags的配置即可。
同上假设工作环境。
cd ~/sources
ctags ./
vim -p test*.c
本配置easytags会在本级目录和逐步查询上级目录中找tags,并在你保存的时候自动更新tags(异步更新,可能会延迟个几秒钟才可以使用跳转)。如果在项目根目录下保存了tags,相当于项目只有一个tags,很方便操作。如果需要其他样式,可以到easytags的网页上按需配置。现在就可以方便的按ctrl+],和ctrl+t来回跳转啦。如果多个tags被找到,可以自行选择。使用YII开发的时候,变量同名的太多,建议修改easytags的配置。这个没有更好的解决办法,如果哪位有,谢谢跟我联系 一下。
4. 常见的小问题
4.1 putty的问题
1. windows下的putty的目录栏有问题。双击图标一直打不开。解决方案是加入多字节支持。如下。
cd vim-7.3-src # 转移到源代码处,打算重新安装
./configure --enable-multibyte # 支持多字节,当然要支持中文。如果在中文环境下,这个应该不用设置了吧。
make && make install # 重新安装
如果需要加入对中文乱码的支持,可以修改.vimrc文件里的set fileencodings=gb2312,gb18030,utf-8。需要说明的是,gb18030是非常大的一个集合了,应该可以确保打开不乱码了。参考自:http://www.ltesting.net/html/71/n-128471.html
另外,putty 复制,在 windows 和 putty 相互复制。在设置里,window/Selection/Control use of Mouse/Action of mouse buttons,选择第一个Windows[...],这样就可以在windows 复制了,右击选择粘贴,就可以把代码复制过来。
2. putty 小键盘事件。输入小键盘的东西,常常乱搞一气。建议是putty->Terminal->Features->disable application keypad mode。就好了,这个是从别处扒来的,忘记网址了,谢谢先。
3. putty 死机事件。由于windows的习惯,保存用Ctrl+S,而Ctrl+S是linux下的锁屏快捷键,就悲剧了。还好按下Ctrl+Q就可以解锁了。参 考:http://www.leonzhang.com/2010/06/09/vim_hangu_by_ctrl_s/
4.2 vim跟外界的文本复制问题
1. windows向putty中vim复制文本。
从windows复制东西过来,输入putty,可能导致有些字符被当做操作符了,复制失败。可以试试在vim命令模式下输入:set paste,可粘贴就纯文本,不需要复制则:set nopaste。参考这里。
2. Deepin下终端vim跟外界互相复制文本。
这个需要vim中(+粘贴板)的支持,只有安装gtk或者gnome版的vim才可以。
sudo apt-get install vim-gnome
(2.1) vim->外界。按V进入视图模式,或者之间用鼠标选中要复制的内容,按"+y(就是依次按下双引号,加号和y),就可以复制到系统粘贴板里,在其他地方使用。
(2.2) 外界->vim。在命令行模式下找到需要粘贴的地方,按"+p(就是依次按下双引号,加号和p),就可以了。从其他地方到vim复制比较方便,也可以直接在插入模式,Ctrl+Shift+V。参考这里。
5. 关于配置更新
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
其中 引号斜杠前面的是作者名称,后面是插件名称。
Vundle分为三类:
在Github vim-scripts 用户下的repos,只需要写出repos名称
在Github其他用户下的repos, 需要写出"用户名/repos名"
不在Github上的插件,需要写出git全路径
打开一个vim, 运行":BundleInstall"或者在命令行运行"vim +BundleInstall +qall",安装完成后插件就能用了。
其它常用命令:
更新插件":BundleUpdate"
清除不再使用的插件":BundleClean"
列出所有插件":BundleList"
查找插件":BundleSearch"
6. 对PHP调试的支持
这个需要根据这里配置其他软件。本文已经加入了DBGp,可以直接调试YII2等php框架的代码。
附录
最终效果
编辑界面
调试PHP,yii2框架的界面
更多vim插件的说明
为了更好的利用插件,可能需要对vim的安装重新配置,下面将介绍如何改进自动补全的clang-complete跟neocomplete做介绍。(待续20150724)
linux vi刷新页面,vim的神级配置 - bubifengyun的个人页面 - OSCHINA - 中文开源技术交流社区...相关推荐
- linux如何敲打中文,vim敲字如弹琴 - linux-tao的个人空间 - OSCHINA - 中文开源技术交流社区...
导读 本篇文章主要讲解vim的常用命令,当你在妹子面前像弹琴一样的敲代码完成给她的惊喜的时候,萌妹子会不会对你顶礼膜拜,发出崇拜的小星星呢? 1.显示行数 vim打开文件之后输入 :set numbe ...
- linux使用wdm设备驱动模型,驱动开发(WDM) - thomas_more的个人空间 - OSCHINA - 中文开源技术交流社区...
windows 设备对象名称(内核对象必须命名才能被用户层访问产生句柄) \Driver\ 内核模式下访问 \.\ 用户模式下访问 winObj(symbollink设备名称的别名,各个节点查看)和d ...
- linux lcd驱动调试 echo dev/fb0,LCD驱动程序 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...
LCD驱动程序 假设 app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0 kernel: fb_open int fbidx = iminor ...
- html5y页面布局标签,HTML常用标签 - osc_wc3dz06y的个人空间 - OSCHINA - 中文开源技术交流社区...
1 HTML初识 HTML标签就是用来表达网页上的文字.图片.链接.音视频等等的······ 1.1 HTML标签分类 在HTML页面中,带有"< >"符号的元素被称为 ...
- linux内核等价多路径路由,高级路由 - 我是*李世民*的个人空间 - OSCHINA - 中文开源技术交流社区...
策略路由背后的概念 Linux内核在默认情况下使用两张路由表:一张表用于本地路由,另一张可以由管理员来配置.如果内核编译支持策略路由,那么可以有多大255张不同的.相互独立的路由表.策略路由背后的主要 ...
- a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...
测试发现a33核心板有时无法正常启动,通过串口信息显示判断是uboot 对mmc初始化有时会出现问题: [ 0.770][mmc]: ************Try MMC card 2** ...
- linux ospf 命令,OSPF单区域配置 - linuxprobe2020的个人空间 - OSCHINA - 中文开源技术交流社区...
为了弥补距离矢量路由协议的不足,IEFI组织开发了一种基于链路状态的内部网关协议OSPF 实验环境:红,绿,蓝三个颜色区域代表三个不同网络的办公场所,要求使用OSPF协议实现网络互通. pc1:172 ...
- linux 劫持广告技术,屏蔽运营商广告劫持 - gcudwork的个人空间 - OSCHINA - 中文开源技术交流社区...
在今天早上我查找知乎时再次遇到了恶心的运营商广告劫持,右下角硕大的广告直接让知乎挂掉了,我刷了五次知乎才好,之前休息的时候逛知乎也是多次加载错误,估计也是这劫持的锅,相信各位也遇到过不少的运营商劫持插 ...
- linux卸载apk命令,apk的安装和卸载 - Jenly的个人空间 - OSCHINA - 中文开源技术交流社区...
之前写了一篇关于静默安装apk的.那个其实是在获取root权限的条件下来通过执行命令完成的.其功能本身已经很强大了.只是前提条件是需要root权限.然后什么静默安装卸载就都是浮云了.对于以下刚刚学an ...
最新文章
- Eclipse 如何安装,以及jdk如何设定环境变量
- jquery---基本标签
- python3 字符串方法
- java 10进制转2进制递归算法_十进制转二进制
- matlab 元胞调用方法你真的理解了么?
- 支付系统详解:清结算系统
- 移远BC95 nbiot接入华为OC云平台(电信云)
- 使用计算机制图的心得,学习cad制图心得体会
- dub解析json为构
- 关于3分频电路的讨论
- ubuntu永中office的快捷键
- 【打卡-Coggle竞赛学习2023年4月】图像检索与重复图像识别
- 餐厅预订系统如何选?餐厅预订系统推荐
- json字符串与python对象互转
- 什么是Timestamp——时间戳?
- 基于WiFi 的CSI和RSS混合指纹室内定位
- 老化的骨骼干细胞产生炎性退行性微环境
- 一个靠谱的淘客开发公司有哪些条件?
- 【每日一题】美国节日(基姆拉尔森公式、蔡勒公式)
- 【HTTP】百度贴吧WEB版签到流程分析