http://blog.csdn.net/sharp_allen/article/details/27075133转载

说了这么多,其实还少一个和word,记事本一样的编辑器,在各个操作系统都有编辑器,在linux里也有,比如gedit编辑器,很方便。在终端里直接敲击gedit即可打开这个编辑器。保存到桌面,名字为geditfiles,再终端里使用ls命令查看:

gedit就是一个全屏幕的编辑器!!还有一个编辑器叫做kate编辑器,可以在里面直接敲命令等,图形界面的东东,和windows下的没什么区别,还有其他的一些。

注意:

如果我们通过远程登录进入linux操作系统的话,是没有图形界面的,只有字符界面,这几个都用不了,那么可以使用字符编辑器vim(在unix里叫vi)。

运行一个vim,可视化的编辑器

vi是一种全屏幕的文本编辑器,光标可以全屏幕的跑,一个纯字符界面的,远程终端可以使用。

Vi有两种状态,初始的时候是命令状态,还有一种状态是插入状态。

而命令状态下,会分出一种模式叫底行模式。底行模式属于命令状态的。

在命令状态下,输入的内容都被当作命令看待,相反,插入状态下,都把内容当作文字!需要哪种状态,就进入即可。

如何退出和 保存?

在命令状态下使用冒号+q+叹号(:q!)这三个按键的组合,在组合中,叹号!表示强制执行的意思,因为这个命令是不保存就强制退出的。没有保存就退,那就是强制啊!

使用:wq是保存然后退出

:x也是保存退出

使用大写的ZZ也是保存退出(不提倡使用)

使用:w 文件名字  是只存为新文件不退出

注意:在插入状态下不管用,因为全部当作文字处理了,必须按esc之后,先进入命令状态下再进行命令的操作才能用。

如图这种输入冒号就在底行的命令状态也叫底行模式。

注意:以后在linux下写c和c++程序几乎都用这个来写了!

如何移动光标呢?

vi提供了一些键盘操作光标的功能。(在命令状态下了)

比如右手上经常按住的hjkl四个键,hl是左右,j是往下面移动,k是上面移动。当然,直接使用光标移动也可。

移动到行首:使用命令数字0,或者直接按home键

移动到行尾:使用命令shilft+4即可,或者$符号,或者按end键,但是一些unix系统不支持,所以还是命令比较好。

移动到屏幕的行首:使用字母H(head,注意区分大小写!!!!!!!大写H,小写h是向左移动光标)。

移动到屏幕的末尾:使用字母 L(last,同样是大写L,小写l是向右移动光标)

移动到屏幕中间使用字母:M(大写字母M,middle)

翻页 ctrl+f  (forward前进)

后退 ctrl+b (backward回退)

想要到某一行去:用冒号: 加行号,或者行号+G

w移动到下一个单词的开头

b移动到上一个单词的开头

e移动到下一个单词的末尾

注意:

这些命令都是在命令状态下操作,而键盘的按键是可以在插入状态下使用。

插入i   a  o 或者insert按键

i是正规的从命令模式进入插入模式,是在光标位置前面去插入(insert)

a原来光标位置后面插入(append附加;添加;贴上;签(名))

o在光标位置下面重启一行,不会截断原来的行

iao都是小写的,而以下是大写的IAO:

I 在行首插入

A 在行尾追加插入

O 在光标位置上面插入空行,注意小写的o是在光标位置下面插入一行。

注意:

insert是命令,插入,覆盖状态之间的转换

显示和取消行号:

: set nu显示行号在左边

: set nonu取消行号

打错字了,还可以删除字符,在插入模式下用delete,或者Backspace键(最好是在插入状态下删除),在命令模式下使用命令比较好,因unix下一些不管用:

删除:小写的x 是删除一个字符(光标位置的)

删除一串;使用 n+x 删除n个字符,这是给x命令指定删除的字符数。但是一般都是在本行删除,多了不会到下一行,以免误操作。

dw删除到下一个单词的开头(deleteword)

de删除到本单词的结尾(delete end)

db删除到本单词的开头(deletebegin)

dd删除一整行 3dd删除3行

删除从光标位置到行尾d$

删除到行首d0

:9,16删除第9到16行

删除错了,我们还可以恢复:

小写的u 命令(undo撤销,按照系统不同,有的支持恢复次数也不一样,看情况,但是都至少支持恢复一次)

小写p是删除之后(东西在vi的剪贴板里)再粘贴到vi编辑器,4p重复插入4次,粘贴在光标位置之后

注意:

大写的P粘贴在光标位置之前

小写的p在后面粘贴

有些类似剪切

移动(move的缩写m)

:8,11m18从第8行到11行移动到第18行后面

dd剪贴(删除)一行,3dd剪贴3行,p粘帖

复制(copy的缩写co)

:8,11co18

复制一个字符使用yl,相应的3yl 复制3个字符,粘贴使用p

yw(word)复制一个单词(带末尾的空格)

ye不带末尾的空格!

yy复制一行,而复制3行是3yy

替换(replace的缩写r)

r+替换内容,4r替换4个字符

s把一个字符换成多个字符

cw(change word)替换整个单词  cw ce

cc替换一整行  c0  c$都一样,就这些。

:5,8s/wf/妻子/g  5到8行把所有的wf替换成妻子,g表示全部

全文替换:先用ctrl+g 得到这个文件多少行

:1,38s/wf/妻子/g

也可以

:1,$s/wf/妻子/g  $表示最后一行

:%s/wf/妻子/g  %表示从第一个到最后一行

~可以把大写换成小写,小写换成大写

查找:/后面开始找和?前面开始找

/a  查找当前光标所在位置后面的a

?q  查找当前光标所在位置前面的q字符,也就是往回找。

注意:光标当前停留在哪里,就是找到了哪里,如果继续找,则按n(next)即可继续往下找。到结尾则提示你查找到结尾了。

vim 编辑器简单使用总结的更多相关文章

  1. VIM编辑器简单总结

    第一讲小结  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键.         h (左移)       j (下行)       k (上行)     l (右移)  2. ...

  2. Linux Vim编辑器使用简单讲解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明:Linux默认自带vi(vim)编辑器,其程序包为:[root@linuxidc.com ~]# rpm -qf `whic ...

  3. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  4. git介绍以及一些常用命令,加上vim编辑器的简单使用

    https://www.jianshu.com/p/04a6517869b4 vim:进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:①.vim编辑器中,按i进入编辑模式:②.按Esc ...

  5. vim编辑器的简单使用

    写这篇文章是因为在更新我的一篇博客 Git的其他用法 的时候,里面的修改已经提交的commit说明这一部分需要用到vim. 在使用git config --global --edit或者git reb ...

  6. Vim编辑器Go简单入门

    今天是一次做Go的笔记,一开始直接打开Github上的Go项目然后跑到Wiki位置,然后作者列出了一堆学习Go的资料,这里我 以第一个学习资料https://tour.golang.org/作为Go学 ...

  7. 玩转Vim 编辑器

    一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...

  8. Linux vim编辑器使用详解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明: Linux默认自带vi(vim)编辑器,其程序包为: [root@xuegod163 ~]# rpm -qf `--1.8 ...

  9. 如何让vim编辑器永久显示行号

    在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...

随机推荐

  1. NPM (node package manager) 入门 - 基础使用

    什么是npm ? npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 截至 ...

  2. 使用Monit监控本地进程

    目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...

  3. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  4. App你真的需要么

    随着智能手机.移动路联网的普及,APP火的一塌糊涂,APP应用可谓五花八门,街上经常看到各种推广:扫码安装送东西,送优惠券.仿佛一夜之间一个企业没有自己的APP就跟不上时代了. 有时我在想:APP,你 ...

  5. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  6. Nested Loops join时显示no join predicate原因分析以及解决办法

    本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效, 至于底下到什么程度我现在都没有一个确切的数据, ...

  7. CSS 3 学习——transform 3D转换渲染

    以下内容根据官方规范翻译,没有翻译关于SVG变换的内容和关于矩阵计算的内容. 一般情况下,元素在一个无景深无立体感的平面(flat plane)上渲染,这个平面就是其包含块所处的平面.同时,页面上的其 ...

  8. springmvc+bootstrap+jquerymobile完整搭建案例(提供下载地址)

    用一张简单的截图说明下,然后提供一个下载地址. bootstrap的大部分样式官方都是写好的,所以只需要class="官方样式即可",具体可以看官方的案例,下面来个地址 http: ...

  9. 如何开发FineReport的自定义控件?

    FineReport作为插件化开发的报表软件,有些特殊需求的功能需要自己开发,开发的插件包帆软官方有提提供,可以去帆软论坛上找,本文将主要介绍如何开发一个自定义控件,这里讲讲方法论. 第一步:实例化一 ...

  10. [Unity3D]利用Raycast实现物体的选择与操作

    本文系作者原创 转载请注明出处 如果是一个2D的平面项目或者说需要在三维空间选择一个物体时(经常表现为抓取物件),我们需要用到Raycast事件 那么首先先说说什么是Raycast 按照字面上来理解的 ...