vim设置

一、基本编辑功能
1、复制、剪切和粘贴
复制特定的某一段:把光标移到要复制的文本的头部,按下“v”,往后移动光标,光标所过之处的字符>都会高亮,移到欲复制文本的尾部后,按下“y”,高亮文本全部被复制到剪粘板。
复制某一行:把光标移到要复制的那一行,按下“yy”,该行就被复制到剪粘板。
剪切特定的某一段:把光标移到要剪切的文本的头部,按下“v”,往后移动光标,光标所过之处的字符>都会高亮,移到欲剪切文本的尾部后,按下“y”,高亮文本全部被复制到剪粘板。
剪切某一行:把光标移到要剪切的那一行,按下“dd”,该行就被复制到剪粘板。
粘贴剪粘板的内容到光标处:把光标移到要粘贴的位置,按下“p”。
2、搜索、替换
向前搜索字符串“example”:/example。
向后搜索字符串“example”:?example。
搜到第一个字符串后,按下“n”向后搜索下一个,按下“N”向前搜索下一个。
全文替换: 把全文的old替换为new :%s/old/new/g
把全文的old替换为new,但每次要求确认::%s/old/new/c
3、Undo和redo
Undo:按下“u”。
Redo: 按下“Ctrl + R”。
4、保存、另存为
保存:“w”。
另存为:“w filename”。
二、语法高亮,格式设置
首先在vi中导入vimrc范例文件::read $VIMRUNTIME/vimrc_example.vim。然后把它保存到你的用户目录下,保存文件名为.vimrc。文件中有一句:syntax on。即为开启语法高亮功能。
关于这个文件中,还有几个比较有用的设置:
set ruler “任何时候都显示光标位置。
set showcmd “显示不完整的命令。
set tabstop=4 “tab键缩进4格。

三、关键字补全
Ctrl + N:找到匹配的关键字把当前未拼写完的关键字补充完整,如果有多个可匹配项,则每按一次Ctrl+N,切换到下一项。如果习惯用tab键补充关键字,则可以在.vimrc文件中添加如下代码:
function! CleverTab()
if strpart( getline(’.'), 0, col(’.')-1 ) =~ ‘^/s*$’
return “/<Tab>”
else
return “/<C-N>”
endfunction
inoremap <Tab> <C-R>=CleverTab()<CR>

四、编辑一个工程
通常我们在开发一个程序中,不止一个源程序文件,我们要在整个工程中编辑源代码,就需要经常在文件间进行切换,这时,可以使用命令:
:e filename
切换到目标文件,而不需要退出vi。
编辑完成,要make,直接输入make命令,如果有错误,该命令执行完毕后,会自动跳到第一个错误的地方,还有几个命令可以在错误行之间定位:
:cc 显示错误信息。
:cn 显示下一条错误信息。
:cp 显示前一条错误信息。
:cl 列出所有错误。
五、其它
1、括号匹配。
包括{} [] ()的匹配,在某一个括号上按下%,便会自动跳到与之匹配的那个括号处,再按一下%,就会跳回来。
2、获得在线帮助。
在编辑程序源代码时,如果对某个系统函数的用法不是很明确,把光标移到这个函数下,按下“K”,便>会跳出这个函数的man帮助信息。
3、暂时回到shell。
输入命令:sh
4、在vi中执行shell命令。
输入:!cmd,比如:!ls。


实用技巧:在Vim编辑器下语法高亮的设置

如果希望vim默认打开支持语法高亮(只在支持色彩的终端中),编辑(ubuntu 7.10 amd版中实现,很多时候只要直接用sudo apt-get install vim 升级安装vim就可以实现这个功能,但是linux这个东西经常会出现莫名其妙的问题,下面的这个方法比较直接)

sudo vim ~/.vimrc
内容为:
if &t_Co > 1
syntax enable
endif

Vim的启动配置

不习惯使用vi的时候,会觉得用它看代码很不方便,累。其实,vi的功能非常强大,稍做配置,就能得到一个友好的编辑器。在启动的时候vim会读取 /usr/share/vim/vim61/.vimrc(全局设置的vimrc)和 ~/.vimrc(用户设置的vimrc,~/也就是大家登录后的根目录home/usrname/,所以可以根据自己的需要create一个rc文件) 并根据该文件的内容来配置vim的各项设置。
下面的是一个范例vimrc文件:
set nocompatible
set bs=2
set columns=80
set background=dark
set tabstop=8
set wrapmargin=8
set nobk
set cindent
set shiftwidth=8
syntax on
set ruler
set noexpandtab

下面是各项设置的具体内容:
set nocompatible :这个设置将避免vim以和vi高度兼容的方式工作,该设置需要在每个vimrc文件的最开始处,从而影响接下来的很多设置;
set bs=2 :这个将影响退格键的工作,具体情况非常复杂,可以参照:help ‘bs’;
set columns=80 :设置屏幕的行数;
set background=dark :使用在深色背景上看起来比较舒服的颜色显示;
set tabstop=8 :tab键跳过的空格数,tabstop=8是缺省值,不过为了和windows平台下的编辑器兼容,建议选择tabstop=4;
set wrapmargin=8 :设置在窗口右侧何处开始换行;
set nobk :关闭文件备份的功能;
set cindent :开启缩进功能;
set shiftwidth :设置缩进的长度,shiftwidth=8是默认值,为了兼容建议选择shiftwidth=4;
syntax on :开启语法结构强调,就是语法高亮;
set ruler :使得vim在右下角显示当前行列数;
set noexpandtab :使vim在tab处,插入tab符而不是一串空格。

阅读vim内部的帮助信息可以获得,很多vim参数的信息。在vim中敲入 :help 可以获取帮助,或者:help usr_toc.txt可以读取用户手册的目录。


高亮显示php代码

进入vim后,在普通模式下输入如下命令,开启php代码高亮显示

:syntax enable

:source $VIMRUNTIME/syntax/php.vim
本文来自:http://www.linuxpk.com/43172.html

转载于:https://www.cnblogs.com/ligongzi/articles/2656738.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery表单属性筛选元素

$(":button") 选择所有按钮元素类型为按钮的元素。 等于$(input[type"button"]) $(":checkbox") 选择所有类型为复选框的元素。 等于$(input[type"checkbox"]) $(":checked") 选择所有勾选的元素。 $( "input:checked&…

Hamcrest Matchers的高级创建

介绍 上一次 &#xff0c;我讨论了Hamcrest Matcher是什么&#xff0c;如何使用以及如何制作。 在本文中&#xff0c;我将解释创建Hamcrest Matchers的更多高级步骤。 首先&#xff0c;我将分享如何使您的匹配器更易于类型安全&#xff0c;然后介绍无状态匹配器的一些技术&…

嵌入式成长轨迹37 【Zigbee项目】【CC2430基础实验】【自动闪烁】

最为简单的代码&#xff0c;只用到一个寄存器P1DIR。因为点亮的led灯&#xff08;p1.0和p1.1&#xff09;的管脚是p1的&#xff0c;要输出就得将这两个管脚设置为输出管脚。该寄存器用0~8对应1.0~1.8管脚。 1 //main.c2 #include <ioCC2430.h>3 4 #define uint unsigned …

博客园CodingLife模板样式优化

博客园CodingLife模板样式优化&#xff0c;小屏和大屏均做了优化&#xff0c;感兴趣的园友可以复制到你的页面定制CSS代码中&#xff0c; 源码地址&#xff1a;http://www.cnblogs.com/blog/customcss/334547.css 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

如何允许用户自定义UI

理念 利用JavafX / FXML的声明性设计模式&#xff0c;并允许用户仅通过使用例如SceneBuilder打开某个视图即可重新定制布局或添加新控件&#xff0c;甚至根据用户需要更改样式&#xff0c;从而无需任何编码即可自定义某个视图。 FXML文件 CSS基本上可以放置在通过URL可以到达的…

WPF控件和布局

WPF控件和布局&#xff0c;根据刘铁猛《深入浅出WPF》书籍讲解内容&#xff0c;主要记录控件和布局的原理&#xff0c;如果有不足的地方&#xff0c;请大牛们键盘下留情--轻喷&#xff01;如果还算有用&#xff0c;请给点动力&#xff0c;支持一把&#xff01; 一、WPF里的控件…

css背景图片定位

背景图默认平铺&#xff1a; background-repeat: no-repeat;/*不平铺*//*repeat-x;沿X轴平铺*//*repeat-x;沿Y轴平铺*/ 背景图片定位&#xff1a; background-position: 100px 30px;/* X轴 Y轴 *//* 20% 20%; 百分比的方式 *//* left|center|right top|center|bottom */ 背景中…

使用GZIP和压缩数据

抽象 我们都知道用zip或gzip压缩文件的含义。 但是在Java中使用压缩文件并不像您想的那样简单明了&#xff0c;尤其是当您不是直接使用文件而是压缩流数据时。 我们会去&#xff1a; 如何将字符串转换为压缩/压缩字节数组&#xff0c;反之亦然 创建用于读取和写入文件的实用程…

Oracle ——概述 Oracle 5 步调优方法论

http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/OPS3/Default.aspx 对 Oracle 调优应该采取积极的态度。如果等到用户开始抱怨性能&#xff0c;才调优通常以为时已晚&#xff0c;即便是最有效的调优策略。性能问题确定和处理的时间越晚&#x…

js,jq.事件代理(事件委托)复习。

<ul id "lists"><li>列表1</li><li>列表2</li><li>列表3</li><li>列表4</li><li>列表5</li><li>列表6</li></ul>js委托&#xff1a; var lists document.getElementById(&qu…

整体服务器与微服务

介绍 刚开始时&#xff0c;由于要求简单&#xff0c;所以应用程序既简单又小。 随着时间要求和需求的增长&#xff0c;我们的应用程序变得越来越大&#xff0c;越来越复杂。 这导致将单片服务器开发和部署为一个单元。 在某种程度上&#xff0c;微服务可以通过简单的应用程序回…

NEXUS S安卓4.0/4.1 【完美】 ROOT教程

原文链接&#xff1a;http://bbs.gfan.com/android-3517082-1-1.html 进行bootloader解锁&#xff08;即使解锁&#xff0c;再上锁&#xff09;&#xff0c;会清除你手机上的【所有】数据&#xff08;包括内部的16G SD 存储&#xff09;&#xff0c;包括但不限于应用、设置、联…

CSS中的各种FC

什么是FC&#xff1f; Formatting Context&#xff0c;格式化上下文&#xff0c;指页面中一个渲染区域&#xff0c;拥有一套渲染规则&#xff0c;它决定了其子元素如何定位&#xff0c;以及与其他元素的相互关系和作用。 BFC 什么是BFC Block Formatting Context&#xff0…

HDU 2647 Reward 拓扑排序

http://acm.hdu.edu.cn/showproblem.php?pid2647 题意&#xff1a; 输入N和M代表N个人和M组数据&#xff0c;M组数据中的A和B代表A的工资要比B的工资高&#xff0c;底薪是&#xff08;888元&#xff09;&#xff0c;问你这个老板至少要付 多少钱给这些员工&#xff0c;A比B工资…

EE Servlet 3:简单表单处理

对于大多数Web开发人员而言&#xff0c;Web应用程序中的表单处理就像小菜一碟。 如果我们无法捕获用户的输入并进行处理&#xff0c;将不会有太大用处。 因此&#xff0c;我在servlet3示例中包含了一个简单的FormServlet &#xff0c;该示例演示了您可能会遇到的很少使用的表单…

编写高质量的代码--基础:结构和样式,行为的分离

实现高质量的代码需要我们在结构和样式&#xff0c;行为的分离的基础上做到&#xff1a;精简&#xff0c;重用&#xff0c;有序。精简&#xff1a;尽量减小文件的大小&#xff0c;提高页面加载速度。重用&#xff1a;提高代码的重用性&#xff0c;减少冗余代码&#xff0c;提高…

提高Java的锁性能

Plumbr是唯一通过解释应用程序性能数据来自动检测Java性能问题的根本原因的解决方案。 几个月前&#xff0c;我们在Plumbr中引入了锁定线程检测之后&#xff0c;我们开始收到类似于“嘿&#xff0c;太好了&#xff0c;现在我知道是什么导致了性能问题&#xff0c;但是现在应该…

APK反编译工具

apktool dex2jar jd-gui 1、将要反编译的APK文件后缀改为.zip&#xff0c;解压 2、取出classes.dex文件&#xff0c;拷贝至dex2jar目录。 3、在dex2jar目录运行下列命令行&#xff1a;dex2jar.bat classes.dex&#xff0c;回车。 4、会发现该目录生成了classes.dex.dex2jar.j…

Dom属性方法

一、javascript的三大核心 1.ECMAScript js的语法标准 2.DOM Document object Model 文档对象模型&#xff0c;提供的方法可以让js操作html标签 3.BOM Browser Object Model 浏览器对象模型&#xff0c;提供的方法让js可以操作浏览器 注意&#xff1a;1. js里最大的boss是wind…

学习Netflix管理员–第2部分

为了继续上一篇有关Netflix Governator的一些基础知识的文章&#xff0c;在这里&#xff0c;我将介绍Netflix Governator带给Google Guice的另一项增强功能–生命周期管理 生命周期管理本质上提供了进入对象所经历的不同生命周期阶段的钩子&#xff0c;以引用有关Governor的Wi…