Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149155
  • 博文数量: 26
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-05 15:00
文章分类

全部博文(26)

文章存档

2014年(1)

2013年(1)

2011年(22)

2010年(1)

2009年(1)

我的朋友

分类: LINUX

2011-06-22 19:58:43

最近切换到Linux,用vim写代码还有点不习惯,于是把编码需要的常用功能做个列表,便于学习整理:
文本选取、复制、粘贴
回车之后自动按段落补齐
整段缩进
撤销、重做
删除整行、删至行首、尾、删除选定区域
语法提示
上一个、下一个文本位置
 
打开多个文件窗口,窗口间切换
支持工程和变量、函数定义跳转
文本搜索、替换、支持正则表达式
执行shell命令
调用编译器执行编译连接
调试工具整合
 
vim:
移动:
^ 移动到本行第一个非空白字符上。
w 向前移动一个单词
b 向后移动一个单词
Ctrl + d 向下滚动半屏
Ctrl + u 向上滚动半屏
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
 
删除:
命令模式下:
dd删除当前行
do删至行首
d$删至行尾
输入模式下:
ctrl + u 删至行首,不包括行首缩进

复制:
可视模式选择后 输入 ?y 复制到寄存器?中。
命令模式 输入?nyy 赋值光标下n行到寄存器?中
粘贴:
命令模式 输入?p 进行粘贴

文本搜索 man more less 似乎通用:
/pattern 从光标处向文本末尾搜索pattern
?pattern ***************首************
n              命令模式重复上一方向的搜索命令
N              ************上一命令反方向搜索命令
文本替换:
ra 将当前字符替换为a,当期字符即光标所在字符。
s/old/new/ 用old替换new,替换当前行的第一个匹配
s/old/new/g 用old替换new,替换当前行的所有匹配
s/old/new/ 用old替换new,替换所有行的第一个匹配
%s/old/new/g 用old替换new,替换整个文件的所有匹配
:10,20 s/^/    /g 在第10行知第20行每行前面加四个空格,用于缩进。

语法高亮 和 自动缩进,在/etc/vim/vimrc中修改(影响所有用户):
syntax on           //语法颜色
set tabstop=4   //制表符宽度
set softtabstop=4
set expandtab    //用空格代替制表符
set cindent shiftwidth=4    //开启语法缩进 缩进宽度为4
set nu                 //显示行数

撤销和重做:
命令模式下,输入 u 为撤销上一次操作,ctrl+r 为重做

手动缩进,命令模式或可视模式下:
< 向左缩进
> 向右缩进
缩进默认是一个tab的宽度,如何设置,待研究
通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。

多窗口命令:
:split或new 打开一个新窗口,光标停在顶层的窗口上
:split file或:new file 用新窗口打开文件
split打开的窗口都是横向的,使用vsplit vnew可以纵向打开窗口。
Ctrl+ww 移动到下一个窗口
Ctrl+w _ 最大化当前窗口
Ctrl+w = 平分当前打开的窗口
 
调用脚本 自动在文件中插入注释:

粘贴代码的格式问题:

阅读(1655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~