Linux 编辑器
vim编辑器
vi作为Unix上的一个编辑器,一直广受欢迎。之后GUN将其移植到开源世界中,经过开发人员对其进行了改善,被称为vi improved,就是现在的vim。为了方便使用,几乎所有的Linux发行版都为vim起了一个别名,即:alias vi=’vim’
vim在内存缓冲区中处理数据。使用vim时有两种模式:普通模式和插入模式。
普通模式下,vim使用方向键来移动方向,同时对应了快捷键:h/j/k/l--->左/下/上/右。
Ctrl+F(PageDown): 下翻页
Ctrl+B(PageUp): 上翻页
G:移到最后一行
num G: 移到第num行
gg: 移到第一行
普通模式下有一个特殊的模式成为命令行模式,该模式下按下冒号即可进入,进入命令行模式中,如下选项可供使用:
q: 在未修改的情况下退出缓冲区;
q! 取消对缓冲区的修改并强制退出;
w filename: 将文件另存为filename;
wq: 保存修改后的缓冲区并退出。
普通模式下,vim提供了如下修改缓冲区数据的选项:
x: 删除当前字符
dw: 删除当前单词
dd: 删除当前行
d$: 删除当前位置到本行末尾的所有字符
J: 删除当前行行尾的换行符,相当于与下一行拼接在一起
u: 撤销上次编辑
a: 在当前光标后插入字符
A: 在当前光标所在行行尾插入字符
r char: 用char替换当前光标所在位置的单个字符
R text: 用text替换当前光标所在位置的字符,相当于word中的插入模式,直到按下ESC退出为止
注意:
vim会将键盘上的Delete键当作 x,而忽略键盘上的 Backspace 键。
其实我们最常用的功能莫过于复制和粘贴了。vim中剪切要比复制简单点,原因是,当你删除数据时,vim并不会真的删除,而是将其保存在一个寄存器中,你可以利用p命令来取回被删的内容。
比如要实现剪切---粘贴,可以先利用dd,然后利用p。
在vim中复制时利用y,其组合为: yw—复制当前单词;yd: 复制当前行; y$: 复制当前位置到行尾。之所以比剪切复杂是因为,你复制后不知道到底复制了什么内容,这个问题可以通过可视模式解决:在你要复制的起始位置,按下v键,此时当前字符高亮显示,然后移动光标,到需要复制内容的结尾,此时按下y激活复制命令。
要进行查找替换功能的话,必须在命令行模式下,:/s/old/new/,此时vim会跳到old第一次出现的位置,并用new来替换。具体变体如下:
:s/old/new/g: 替换当前行中的所有old;
:n.ms/old/new/g: 替换行号n和m之间的所有old;
:%s/old/new/g: 替换整个文件中的所有old;
:%s/old/new/gc: 替换整个文件中的所有old,并在每次出现时提示。
Emacs编辑器
Emacs编辑器早于Unix的诞生。在控制台模式下键入打开Emacs编辑器的命令时,其会根据环境是否允许决定打开控制台版本还是图形界面版本。Emacs编辑器一般会使用键盘上的Ctrl和Alt键来组合命令。键入Ctrl+x,屏幕上显示C-x; 键入Alt+x,屏幕上显示M-x。
由于Emacs模式只有一个模式,因此在编辑和输入命令之间必须进行模式切换。在命令模式下,使用方向键和PageUp、PageDown操作光标,此外,等效的快捷键如下:
C-p/ C-b/ C-f/ C-n: 代表上/ 左/ 右/ 下。
其他快捷键如下:
M-f: 右移到下一个单词;
M-b: 左移到上一个单词;
C-a: 移到行首;
C-e: 移到行尾;
M-a: 移到当前句首;
M-e: 移到当前句尾;
M-v: 上翻页
C-v: 下翻页
M-<: 移到首行
M->: 移到尾行
保存缓冲区内容的相关命令:
C-x C-s: 保存当前缓冲区内容到文件中;
C-z: 假退出,还可以回来;
C-x C-c: 退出Emacs.
其中, C-x称为扩展命令。
Emacs在插入和删除缓冲区数据时具有优越性。删除数据时正常使用Backspace和Delete的对应功能。Emacs的剪切会将数据存储起来,删除命令会直接删除而不存储,这点和vim有所区别。
M-Backspace: 剪切当前光标之前的单词
M-d: 剪切当前光标之后的单词
C-k: 剪切当前位置到行尾的内容
M-k: 剪切当前位置到句尾的内容
还有一种剪切方法,在起始光标处按下C-@或者C-Backspace,在结束位置处按下C-w,这段区间的内容将被剪切掉。
撤销: C-u
粘贴: C-y
C-s: 向前搜索
C-r: 向后搜索
有两种查找方式,渐进式的(在输入过程中执行查找)和非渐进式的(输入完成后按下回车进行查找)。
替换功能:用new替换old
M-x ---->replace-string ---->old ---->new
C-x C-f: 加载新文件到缓冲区中,按下这个组合键时提示输入文件名,如果忘记了,此时直接按下回车键,会弹出一个文件浏览器。
C-x C-b: 列出当前所有的工作缓冲区,如果你有多个文件正在编辑,那么Emacs会将编辑器窗口进行拆分。除了主要区域外,Emacs还提供了两个缓冲区:草稿区域:scatch / 消息区域:Messages。
有两种方式切换到不同的缓冲区中:
C-x o: 先切换到缓冲区列表,再使用方向键选择,然后回车;
C-x b: 直接输入目标缓冲区的名字,然后回车;
控制台模式下的Emacs:
C-x 2: 将窗口水平拆分为两个
C-x 3: 将窗口垂直拆分为两个
当创建一个新窗口时,Emacs会在窗口中加载原有的缓冲区,可以使用C-x C-f来加载一个新文件,或者用命令切换到不同的缓冲区。
要关闭当前窗口,使用C-x 0;
要关闭除当前窗口的所有窗口,使用C-x 1;
Linux 编辑器的更多相关文章
- Linux编辑器vi使用方法详细介绍
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- Linux编辑器篇-分享10个最好的Markdown编辑器
在这篇文章中,兄弟连Linux培训会分享一些可以在 Linux 上安装使用的最好的 Markdown 编辑器.虽然你在 Linux 平台上能找到非常多的 的 Markdown 编辑器,但是在这里我们将 ...
- Linux编辑器|gedit|vi|vim编辑器
gedit编辑器 gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适. sublime编辑器 Sublime T ...
- Linux编辑器vi使用方法详细介绍(转)
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- linux编辑器 vi的使用
vi 编辑器的三个模式: 命令模式 开始就是命令模式 insert模式 i, I, a, A, o,O ,s, S 命令行模式 : i 在当前位置进入Insert模式 I 在行的头部进入Inser ...
- Linux编辑器的选择使用
在执行 crontab -e的时候 发现编辑器不对 用的是nano 立刻 sudo select-editor 然后终端返回 Select an editor. To change later, ru ...
- linux编辑器使用记录
超强大vim配置文件: wget http://files.cnblogs.com/ma6174/vimrc.zip unzip -f vimrc.zip -d ~/ 一.vim编辑器 进入 ...
- Linux编辑器vim键盘详解
下面的这张图,一看就明白了,从此,学习变的不再艰难! 补注:图中没有关于查找和替换的,应该用下面的.自上而下的查找操作 /word小写的n和N自下而上的查找操作 ...
- Linux编辑器Vim和Emacs入门
sudo 命令 debian系统没有自带,需要安装: apt-get install sudo 安装位置为 /usr/bin/sudo,对应配置文件为 /etc/sudoers sudoers授权格式 ...
随机推荐
- CSS3之动画相关
CSS3动画相关的属性:transform,transition,animation. 变形Transform 语法: transform: rotate | scale | skew | trans ...
- Ossim应用体验视频
Ossim体验视频 近期,我写的有关Ossim应用的系列文章网友们非常关注,这里对大家提出有一些问题我制作了高清的视频和截图发布到网站,以让更多的人了解这款开源安全平台.在年后出版的教程中会详细讲解o ...
- Windbg 进程与线程 《第三篇》
Windbg既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 一.进程命令 进程命令包括这些内容:显示进程列表.进 ...
- javacript 优化2
上面一篇文章大致介绍了一些javascript当中使用的一些小技巧,当下这篇文章继续介绍一下内存管理.松散耦合.性能方面的一些小知识.为避免错误应该注意的点 内存管理 1.循环引用 如果循环引用中包含 ...
- 深入理解ASP.NET的内部运行机制(转)
WebForms和WebServices作为.NET平台构建Web程序的两大利器,以其开发简单.易于部署的特点得到了广泛的应用,但殊不知微软公司在背后为我们做了大量的基础性工作,以至于我们开发人员只需 ...
- WP8——页面跳转方法
1.页面传值: this.NavigationService.Navigate(new Uri("/SecondPage.xaml?CustomerId=1234&Product ...
- Muzei Live Wallpaper壁纸应用安卓源码项目
这个刚刚在安卓教程网那里看到的,这个是Muzei Live Wallpaper壁纸应用源码,这是已经在Playstore上线了的android壁纸应用,点击壁纸界面可以磨砂透明效果以及一般背景效果之间 ...
- linux ubuntu装机到可实现java(eclipse,intellij IDEA,android)开发全过程
前言:linux是个很强的东西,你可以在其中体验开发的神速,有如神助,但是同时系统的不完整,错误漏洞多也是ubuntu等系统的诟病,所以大家遇到任何问题,第一时间请淡定,随后百度,google一下吧, ...
- Vue.js学习 Item1 --快速入门
我们以 Vue 数据绑定的快速导览开始.如果你对高级概述更感兴趣,可查看这篇博文. 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.在浏览器新标签页中打开它,跟 ...
- SDUST 作业10 Problem I 液晶显示
Description 你的朋友刚买了一台新电脑,他以前用过的最强大的计算工具是一台袖珍计算器.现在,看着自己的新电脑,他有点失望,因为他更喜欢计算器上的LC显示器.所以,你决定写一个LC显示风格的程 ...