vi vim 快捷键必知必会

作者:Nffish


以前只会简单的使用vi做一些修改。最近看一个视频,那个人用vi用的太好了,羡慕。熟悉vi编辑器后,可以完全使用键盘操作,无需在键盘和鼠标间来回移动,从而提高开发效率。

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

转载自: http://blog.csdn.net/java211/archive/2009/05/12/4171634.aspx

最年轻的MCSE只有9岁 (ps:是个女孩)

据Zdnet报道,现年9岁的马其顿女孩Marko Calasan在上个月成为了史上最年轻的微软认证系统工程师。
现年9岁的马其顿男孩Marko Calasan,不只是喜欢计算机的普通小孩。早在3年前,6岁的Marko便取得他的第一张微软系统管理员认证。而在上个月,他成为史上最年轻的微软认证系统工程师。

最年轻的MS认证系统工程师只有9岁

最年轻的MS认证系统工程师只有9岁

Marko目前已经找到他的第一份系统管理员工作:远程为一个残障人士的非营利团体管理网络。

Marko也是他的小学电脑教室的老师,教导8至11岁的学童基本的电脑使用技巧。教室里有马其顿教育部提供的15台PC,他自己家里则有5台电脑——Marko的爸爸也是一位IT系统经理。

为了让他有更多时间研究电脑,马其顿政府特准Marko随兴上学,有时他一个月只参加几次正规的学校课程。Marko也有学校电脑教室的钥匙,可以随时进出。他最近的计划是设计一种方法,透过相对缓慢的网络基础设施,发送高画质电视讯号。

Marko说他每天通常花四小时在计算机上,但有时会用到十小时以上。Marko较不感兴趣的计算机相关活动,竟然是电玩游戏。他说:“我不在计算机上玩游戏,因为在计算机上玩游戏没有意义。如果你要玩,就出去和朋友一起玩。”

虽然他在马其顿已是名流人物,Marko真正想要的是搬去美国,接近最新的科技和微软。他说:“那是我最大的愿望。我要住在美国,因为那里有最先进的技术。”

让代码更美:10大编程字体 来自美是一种思维干扰部门

3秒 写道 "日复一日的编写代码,有没有感到审美疲劳?也许些许的改变就能让我们感到生活更美好。换一种编程字体吧!体验一种新的代码感觉。下面我眼中的十大编程字体:
10. Courier
基本上所有的系统都自带了此种字体,有时候它又以Courier New的名字出现。不幸的是很多终端和编辑器都默认使用此种字体,虽然这不会影响使用,但这会影响心情,它太枯燥了。以前看到这样一句评论:久不见牡丹会以仙人掌为美。这句评论形Courier字体非常合适。所以如果你还有其他选择的话,请勿使用此字体。更不幸的事情是最后你还是会继续使用它,那3秒只能强烈建议你调整一下字体大小并消除锯齿。

9. Andale Mono
稍微比Courier好一点的字体,有些时候它也被用作默认字体。3秒给它的定义是:一个软件不自带就不会有人去专门下载使用的一种字体。

8. Monaco
使用苹果Mac的人们对它不陌生,它是Mac的默认字体,3秒的经验是:使用它时,把字体设置为9号或者10号时会更好,这样看起来就相对不寒酸了。

7. Profont
Profont是一种类Monaco的位图字体,你能够在Mac, Windows和Linux上面使用,Mac平台的ProFontX就是它的修改版,当然两个字体并非出自同一作者之手。如果使用它,你把字体调小一点为好。而且如果你是非Mac平台,它是Monaco的最佳替代者。如果你喜欢微小字体或者喜欢眼疲劳,你可以考虑一下它。

6. Monofur
Monofur是一种独特的等宽字体,各种大小看起来都非常不错,前提是你已经设置为消除锯齿。这种字体的外观比较独特,看着它容易让你想起上世纪八十年代Sun的Solaris(SunOS)上的OPENLOOK窗口管理器。如果你喜欢新鲜的东西,你可以试一下这种字体,再次提示一下:消除锯齿。

5. Proggy
Proggy是一种很干净的等宽字体,貌似受到很多Windows用户的青睐,在Mac上它同样工作正常。使用它一般把字体调小点,不要消除锯齿。

4. Droid Sans Mono
Droid 字体家族 适合手机等小屏幕的移动平台,比如Android。它在Apache许可证下授权。伟大的编程字体,在我列出的等宽字体中它是最突出的一个。

3. Deja Vu Sans Mono
Deja Vu 是我最喜欢的免费字体家族之一,基于Vera字体家族。Deja Vu已经能够支持更多的字符了,并保持了Vera的外观和感觉。适于任何大小,只要你消除锯齿。

2. Consolas
Consolas是商业字体,它是Luc(as) de Groot为微软ClearType字体家族设计的,与微软很多产品绑定在一起,所以幸运的是可能你的系统上已经有它的存在了。如果你在不消除锯齿的情况下使用它,那还不如使用Courier吧!

1. Inconsolata
Inconsolata是我最喜欢的等宽字体,而且是免费的。在发现它之后,3秒迅速改变了Deja Vu Sans Mono作为我默认编程字体的情况。从终端窗口到代码编辑器,我让它无处不在。它的风格非常独特。设计它的时候就已经把锯齿消除了,就算是非常小的时候也很清晰—真正的情况是它适合于任何大小。感谢Raph Levien创造了Inconsolata,并让它免费。

这些字体中大部分是免费的,可以自由下载。有些是是商业软件的一部分,比如Consolas。

你感觉怎么样?如果感觉相见恨晚,不妨去尝试一下。

完整图文版 http://3seconds.cn/2010/01/20/10-programming-fonts .html"

李荣融不满奥迪车

华尔街日报

国资委主任李荣融1月9日在第11届北大光华新年论坛上说,央企一定要做到以用户为上帝,他认为在这方面中国央企与丰田等日本一流企业还有很大差距。说这番话时李荣融突然有感而发道,德国企业在这方面做的也不怎么样。他以自己乘坐的奥迪车为例说,坐垫硬得要死,一点没考虑中国人没有那么大块头;既然明知是给部长级领导配的车,可车辆的仪表盘和所有控制按钮都在车前排,想听个收音机还要劳烦司机摁按钮。李荣融说,至少奥迪公司没把我当上帝。
德国去年刚刚把世界最大出口国的宝座输给中国,新年伊始又受到李主任直言不讳的批评,可真够背的。李荣融的话虽然有很大调侃成分,但如果奥迪公司把中国消费者的意见一概视为耳旁风,很可能要在市场上栽跟头。因为经济实力日渐增长的中国,正在越来越多的领域重塑全球市场格局
以中国钢铁工业为例,预计中国今年的钢产量将达到创纪录的6亿吨,占全球产量的将近一半,是世界第二大产钢国日本的六倍。正因为中国在全球钢铁消费市场上占有如此举足轻重的地位,世界几大铁矿石供应商和中国钢铁业本应保持和谐的关系,但现实情况却正好相反,“力拓案”就是双方矛盾激化的一个反映。对几大铁矿石巨头来说,如果想当然地以为中国因铁矿石需求巨大而只能被动迁就他们是危险的。中国有句老话,水能载舟亦能覆舟,中国虽然未必能扭转铁矿石价格总体向上的市场趋势,但凭借自己占世界一半左右的铁矿石需求量,却有能力让市场价格产生人为波动。
2009年全年中国铁矿石进口量达6.278亿吨,较2008年增长41.6%,而去年前11个月中国的粗钢产量只较上年增长了13%。这说明,因市场预计今年的铁矿石基准价格将上涨20%以上,交易员和钢铁生产商已开始预先储备铁矿石。设想一下,假如中国在抑制房价等方面的措施收到成效,将对国内的建筑用钢需求产生负面影响,如果届时铁矿石库存再出现过剩,很可能对全球铁矿石价格产生明显抑制作用,打铁矿石巨头一个措手不及。
西方也有句老话──别把鸡蛋都放到一个篮子里。但对刚刚走出金融危机风暴的世界经济而言,许多行业除了把自己的鸡蛋放到新兴市场这只篮子里之外可能别无选择。人们普遍认为,以中、印、巴、俄这“金砖四国”为首的新兴市场国家将引领全球走出本轮经济衰退。但新兴市场股市比美国股市更为迅猛的反弹也暗示,投资者对新兴市场的复苏可能过于乐观了。如果新兴市场国家发生迪拜危机一类突发性事件,一些基于对新兴市场的乐观预期而加大马力生产的相关行业很可能遭受沉重打击。

Ubuntu Linux 目录结构

重要的标准目录结构和文件

/ 根目录
/bin 基本命令的二进制文件–包含启动系统和在恢复模式初次运行所需的文件
/boot 引导加载程序的静态文件–包含引导系统的所有文件
/dev 设备文件–包含代表外围设备(如磁盘驱动器,终端,打印机)的所有文件
/etc 本地计算机系统配置文件
/etc/opt 放在opt/目录下的附加软件包的配置文件
etc/X11 用于X窗口系统的本地计算机配置文件
/home 用户主目录
/lib 共享库
/lib/modules 可加载内核模块
/mnt 临时挂载文件系统的挂载点
/opt 附加软件包(optional package ,可选软件包)
/proc 用于显示内核和进程信息的虚拟文件系统
/root root用户的主目录
/sbin 基本的二进制系统文件
/sys 设备伪文件系统
/tmp 临时文件
/usr 第二主文件层次–按照传统,这里包含存放系统所需信息的子目录.在/usr子目录中的文件经常改动,可有多个系统共享
/usr/bin 大多数用户命令–包含标准Linux工具程序,也就是说在恢复模式下并不需要二进制文件
/usr/games 游戏和教育软件
/usr/include C程序包含的头文件
/usr/lib 库文件
/usr/local 本地文件层次结构–包含对本地重要的文件和目录,这些文件和目录都是后来添加到系统的(而不是系统自带的).其子目录有:bin、games、include、lib、sbin、share和src。
/usr/man 联机手册
/usr/sbin 非关键的用于系统管理的二进制文件
/usr/share 体系结构无关数据
/usr/share/doc 各种文档
/usr/share/info GNU info系统的主要目录
/usr/src 源代码文件
/var 可变数据–var的子目录包含系统运行时内容可变的文件,这些问价通常是临时文件、系统日志文件、假脱机文件和用户邮箱文件。
/var/log 日子文件–包括文件lastlog(记录每个用户上次登录时间),文件messages(来自syslogd的系统消息)和文件wtmp(记录所有的登录和注销事件)
/var/spool 假脱机应用数据

QQ reader?

今天发现reader.qq.com的网址转到了labs.qq.com,难道腾讯或将阅读功能从邮箱种剥离,设立独立的类似于google reader 

两个国内Linux镜像下载站


国内的两个门户的Linux 镜像,网易的比较全了,搜狐的还在完善中。不知道新浪有没有。

http://mirrors.163.com/

http://mirrors.sohu.com/

原文地址

Ubuntu桌面操作快捷键

ubuntulogo

Ubuntu操作基本快捷键
* 打开主菜单 = Alt + F1
* 运行 = Alt + F2
* 显示桌面 = Ctrl + Alt + d
* 最小化当前窗口 = Alt + F9
* 最大化当前窗口 = Alt + F10
* 关闭当前窗口 = Alt + F4
* 截取全屏 = Print Screen
* 截取窗口 = Alt + Print Screen
默认特殊快捷键
* 展示所有窗口程序 = F10
* 展示当前窗口最上层程序 = F11
* 展示当前窗口所有程序 = F12
* 切换窗口 = Alt + Tab
* 旋转3D桌面 = Ctrl + Alt + 左/右箭头(也可以把鼠标放在标题栏或桌面使用滚轮切换)
* 旋转3D桌面( 活动窗口跟随) = Ctrl + Shift + Alt + 左/右箭头
* 手动旋转3D桌面 = Ctrl + Alt + 左键单击并拖拽桌面空白处
* 窗口透明/不透明 = possible with the “transset” utility or Alt + 滚轮
* 放大一次 = 超级键 + 右击
* 手动放大 = 超级键 + 滚轮向上
* 手动缩小 = 超级键 + 滚轮向下
* 移动窗口 = Alt + 左键单击
* 移动窗口时贴住边框 = 左键开始拖动后再 Ctrl + Alt
* 调整窗口大小 = Alt + 中击
* Bring up the window below the top window = Alt + middle-click
* 动态效果减速 = Shift + F10
* 水纹 = 按住 Ctrl+超级键
* 雨点 = Shift-F9
* 桌面展开= Ctrl + Alt + 下箭头,然后按住 Ctrl + Alt 和左/右箭头选择桌面

2010年元旦致辞

祝大家2010年新年快乐,合家幸福,万事如意,心想事成,天天开心。……