本节书摘来自异步社区《Linux指令从入门到精通》一书中的第4章,第4.3节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区“异步社区”公众号查看
4.3 Linux下全屏幕文本编辑器的命令行方式
4.3.1 emacs:文本编辑指令
初步了解emacs编辑器的基础功能,学会使用emacs指令来进行文本编辑、电邮收发等各项功能。
emacs [-可选参数] [文件名]
Emacs (Editor MACroS编辑器宏) 是一个功能强大的文本编辑器。该指令不仅可以用来编辑文本文件,还可以收发电邮、编辑远程文档、通过Telnet登录远程主机、登录IRC、查看日历、支持多种编程语言(如C/C++,Perl,Python,Lisp等)、管理日程和个人信息、阅读info和man文档、浏览网站以及强大的个人定制功能等各种功能。
Emacs编辑器能够运行在当前大多数的操作系统上,如GNU/Linux,Solaris,AIX,Mac OS X,MS-DOS,Microsoft Windows以及OpenVMS等。Emacs既可以在文本终端的命令行模式下运行,也可以在图形用户界面(GUI)环境下运行。在GUI环境下,Emacs为用户提供了菜单(Menubar)、工具栏(Toolbar)等交互方式。
可选参数及其说明如下:
【Emacs快捷键】
文件编辑操作
C-f:前进一个字符。
C-b:后退一个字符。
M-f:前进一个字。
M-b:后退一个字。
C-a:移到行首。
C-e:移到行尾。
M-a:移到句首。
M-e:移到句尾。
C-p:后退一行。
C-n:前进一行。
M-x goto-line:跳到指定行。
C-v:向下翻页。
M-v:向上翻页。
M-<:缓冲区头部。
M->:缓冲区尾部。
C-M-f:向前匹配括号。
C-M-b:向后匹配括号。
C-l:当前行居中。
M-n or C-u n:重复操作随后的命令n次。
C-u:重复操作随后的命令4次。
C-u C-u:重复操作随后的命令8次。
C-x ESC ESC:执行历史命令记录,M-p选择上一条命令,M-n选择下一条命令。
C-d:删除一个字符。
M-d:删除一个字。
C-k:删除一行。
M-k:删除一句。
C-w:删除标记区域。
C-y:粘贴删除的内容。
C-@:标记开始区域。
C-x h:标记所有文字。
C-x C-x:交换光标位置和区域标记区开头。
M-w:复制标记区域。
C-_ or C-x u:撤销操作。
C-x C-f:打开文件,出现提示时输入/username@host:filepath可编辑FTP文件。
C-x C-v:打开一个文件,取代当前缓冲区。
C-x C-s:保存文件。
C-x C-w:存为新文件。
C-x i:插入文件。
C-x C-q:切换为只读或者读写模式。
C-x C-x:退出Emacs。
窗口操作
C-x 0:关闭本窗口。
C-x 1:只留下一个窗口。
C-x 2:垂直均分窗口。
C-x 3:水平均分窗口。
C-x o:切换到别的窗口。
C-x s:保存所有窗口的缓冲。
C-x b:选择当前窗口的缓冲区。
C-x^:纵向扩大窗口。
C-x }:横向扩大窗口。
目录操作
C-x d:打开目录模式。
C:拷贝当前文件。
d:标记为删除。
D:马上删除当前文件
i:在当前缓冲区的末尾插入子目录的内容。
g:刷新显示。
q:退出目录模式。
R:重命名当前文件。
s:按日期/文件名排序显示。
t:反向标记文件。
v:阅读光标所在的文件。
x:执行标记。
Z:压缩文件。
+:新建文件夹。
!:对光标所在的文件执行Shell命令。
执行Shell命令
M-x Shell:打开Shell。
M-!:执行Shell命令 (Shell-command)。
M-1 M-!:执行Shell命令,命令输出插入光标位置,不打开新输出窗口。
M-|:针对某一特定区域执行命令(Shell-command-on-region)。
范例423 命令行模式下启动Emacs文本编辑器。
[root@localhost ~]# emacs //启动Emacs文本编辑器
在Linux的终端直接输入指令“emacs”将启动Emacs 文本编辑器。用户也可以直接输入想要编辑的文件路径,编辑器将打开该文件,在交互模式下进行操作。
4.3.2 vim:文本编辑指令
学习vim编辑器并掌握其使用方法,能运用该编辑器进行文件和源程序的编辑
vim [-可选参数] [文件]
vim即vi improve,是在vi文本编辑器的基础上发展而来的增强型vi文本编辑器。与传统的vi编辑器相比,vim增加了高亮、彩显等功能。它可工作在以下3种模式:命令行模式(command mode)、输入模式(input mode)和末行模式(last line mode),默认状态下的模式是命令行模式。现将3种模式下的常用操作命令列举如下:
【vim环境下的常用命令】
命令行模式:
D:删除光标所在行后的所有词。
G:将光标移至最后一行的行首。
h:将光标向左移一列。
i:将光标向右移一列。
j:将光标向上移一行。
k:将光标向下移一行。
nG:n为数字,将光标移至第n行。
p:将复制的内容粘贴到光标所在位置。
r:修改光标所在处的字符。
R:修改光标所在处的字符,按Esc键退出修改。
U:取消对行执行的所有改变。
W/w:将光标移至下一个字。
x:删除光标所在处的字符。
X:删除光标所在处的前一个字符。
d+ d:连按两次d,将删除光标所在的行。
d+w:删除光标所在处的词,若光标位于2个字之间删除光标后的1个。
n+x:删除光标所在处及其后的共n个字符。
n+X:删除光标所在处及其前的共n个字符。
y+ y:整行复制。
y+w:复制光标所在处的整个字符串。
n+ d+ d:n为数字,删除光标所在行及其下面的n-1行,共n行。
n+y+ w:n为数字,复制当前光标所在位的单词及紧跟其后的n-1个单词,共n个词。
n+y+ y:复制当前光标所在行及其下面的n-1行,共n行。
d+左方向键:连按将删除光标所在处的前一个字符。
d+右方向键:删除光标所在处的字符。
d+上方向键:删除光标所在行与其上一行。
d+下方向键:删除光标所在行与其下一行。
n+ d+上方向键:n为数字,删除光标所在行及其上面的n-1行,共n行。
n+ d+下方向键:同n+ d+ d。
Ctrl+ b:向上翻一页。
Ctrl+f:向下翻一页。
Ctrl+ u:向前翻半页。
Ctrl+ d:向后翻半页。
Ctrl+g:在最后一行处显示光标所在位置的行数和文章的总行数。
N+:将光标移至第N行。
0:将光标移至该行的行首。
$:将光标移至该行的行末。
{:将光标移至前面的“{”处。
}:将光标移至后面的“}”处。
.:重复执行上一次命令。
输入模式:
a:从当前光标所在字符之后开始输入。
A:从当前光标所在行的末端开始输入。
i:从当前光标处插入。
I:从当前光标所在行的行首开始插入。
o:在当前光标所在行下方新增一行,从新增行的行首开始输入。
O:在当前光标所在行上方新增一行,从新增行的行首开始输入。
末行模式:
:n:加载文件。
:w:存盘。
:w newfile:文件另存。
:wq:存盘并退出。
:w!:对只读文件强制写入存盘。
:q:退出。
:q!:强制退出。
:set nu:在每行开头显示行数。
:set none:取消每行开头的行数显示。
:!:强制执行。
:/ 字符串:匹配字符串查找,查找完成后突出显示匹配字符串,同时转至查找到的第一个匹配字符串,按n向下查找、N向上查找。
可选参数及其说明如下:
范例424 直接启动vim编辑器,进行文字编辑。
[root@localhost ~]# vim //启动vim编辑器
在Shell下输入指令“vim”,进入vim编辑环境。
VIM-Vi Improved
version 7.0.237
by Bram Moolenaar et al.
Modified by bugzilla@redhat.com
Vim is open source and freely distributable
Help poor children in Uganda!
type :help iccf <Enter> for information
type :q <Enter> to exit
type :help<Enter> or<F1> for online help
type :help Version7 <Enter> for Version info
进入vim编辑环境后,输入“:a”命令切换到输入模式,录入数据。
VIM-Vi Improved
version 7.0.237
by Bram Moolenaar et al.
Modified by bugzilla@redhat.com
Vim is open source and freely distributable
Help poor children in Uganda!
type :help iccf <Enter> for information
type :q <Enter> to exit
type :help<Enter> or<F1> for online help
type :help Version7 <Enter> for Version info
:a
Since Aug.10,when a ban on most carry-on liquids sent the amount of checked luggage soaring,
airlines have been misplacing many more bags,and the fumbling could well escalate during the busy holiday travel season.
在vim编辑环境下,完成数据输入后按“Esc”键,退出输入模式。此时输入“:w ax”保存输入数据。
:a
Since Aug.10,when a ban on most carry-on liquids sent the amount of checked luggage soaring,
airlines have been misplacing many more bags,and the fumbling could well escalate during the busy holiday travel season.
:w ax
完成文件保存后将显示该文件的相关信息如下所示。
:a
Since Aug.10,when a ban on most carry-on liquids sent the amount of checked luggage soaring,
airlines have been misplacing many more bags,and the fumbling could well escalate during the busy holiday travel season.
“ax” [New] 3L,132C written 6,1 All
如果不再进行其他的文件编辑,就可以退出编辑器了。输入命令“:q”,退出vim编辑器。
:a
Since Aug.10,when a ban on most carry-on liquids sent the amount of checked luggage soaring,
airlines have been misplacing many more bags,and the fumbling could well escalate during the busy holiday travel season.
:q
输入命令“:q”后直接按回车键退出vim编辑环境,回到Shell环境下。
[root@localhost ~]# vim //启动vim编辑器
[root@localhost ~]# //退出vim编辑器