① vim 中输入特殊字符回车符号('\r')
回车的含义:将派行光标移动到行首部
linux 下回车符号为'\r',windows下为'\r\n'
linux环境下在vim中输入回车符号方式:
测试方式:我们在一个文本文件中输入一串数粗激字,然后在末尾输入一个回车字符,保存后去winodws下检查是否光标被移动到了行首部,如果是,说明是回车符号其了作用,也就是我们输入了正确的回车符号。
步骤:
1. linux下创建文本文件test.txt,vim打开这个文件,按 i 进入vim插入模式下
2. 先输入一点内容"abcdefg"
3. 之后准备输入回车字符: 按 'ctrl + k',vim中会出现?的字符,敲击一下键盘'enter'键,发现?字符会消失,再次敲击一下'enter'键,会出现^M这个字符,这个字符就是我们需要的回车符号
4. wq保存退出vim,将test.txt放到windows下用notepad++打开,并设置所有字符可见,会发现文件内容为abcdefg,并且光标在a符号的前面,即在行首部。说明我们输入了岩羡袜正确的回车符号。
② vim怎么查询前10行内容
、查看文件纳猛升的某几行
1、使用cat命令
(1)查看文件的前10行:
cat filename |head -n 10
(2)查看文件后10行:
cat filename |tail -n 10
(3)查看文件从第10行开始直到最后一行:
cat filename |tail -n +10
(4)查看文件前10行的后5行,即第6~10行:
cat filename |head -n 10|tail -n 5
(5)查看文件前10行中从第5行开始的部分,即第5~10行:
cat filename |head -n 10|tail -n +5
(6)查看文件后10行中的前5行,即倒数第10行~倒数第6行:
cat filename |tail -n 10|head -n 5
(洞老7)查看 文件后10行中从第5行开始的部分,即倒数第6行~倒数第1行:
cat filename |tail -n 10|tail -n +5
(8)查看文件从第5行开始的后10行,即5~14行:
cat filename |tail -n +5| head -n 10
单独命令的意思:
head -n 10 : 前10行
tail -n 10 : 后10行
tail -n +10 : 从第10行开始往后
2、使用sed命令
(1)查看文件的全部内容:
sed '' filename
(2)查看文件的第5到10行:
sed -n '5,10p' filename
二、从另一文件中复制某几行到本文件
打知简开本文件之后,可以利用“r!”命令来把另一文件的内容复制过来:
:r! command “command”的结果插入光标下一行
:nr! command “command”的结果插入光标的n行后
例如:
:r! cat filename |head -n 10 把“filename”文件的前10行复制到本文件
三、把本文件中的某几行复制到另一文件
(1)把本文件的5~10行复制到“filename”文件的后面:
:5,10 w>> filename
(2)把本文件的5~10行复制到“filename”中,清除“filename”原文件的内容:
:5,10 w! filename
③ vim中:ctrl+r和. ,有没有区别
ctrl+r在编辑模式下撤销,在常规模式下枣喊罩是跳凳闹转回tags上一个位置
. 这个是重复上一次命令,比如你复制操渗弊作了一次,可以用.来重复多次
④ VIM中的<C-r>=是什么意思
这应该是指在插入模式的一个命令。
在插入模式下,<C-R>用于插入寄存器的内容。最简单的用法比如
<C-R>a
就类似于普通模式下的 "ap。可以把寄存器 a 的内容粘贴出来。
知道 <C-R> 的基本用法之后,来讲下 <C-R>= 的涵意。= 是 vim 的一个特殊寄存器,让厅叫做表达式寄存器。它不是真正的寄存器,但是可以用在任何可以用寄存器的命令中。它用于求一个表达式的值,并把此值做为寄存器的内容,传给调用寄存器的那个指令。
说的有些绕口,举个例子:
比如你在打字时,想插入 30 度角的正弦值,但你又忘了它的值是 1/2。那么你就可以这么干(30 度角在数学里用 π/6 表示坦源隐,具体就不解释了,希望你数学老师还健在):
<C-R>=sin(3.1415926/6)
按完 = 就会转到命令行那里输入表达式,输入好了要按一下回车裂蚂。最终 vim 会插入一个 0.5。
这就是表达式寄存器的的原理,<C-R> 本来是插入一个寄存器的内容。 "= 先接受一个表达式 “sin(3.1415926/6)”,然后求这个表达式的值是 0.5,然后把这个求完了的值做为内容,又传给了 <C-R> 这个指令。所以最后会插入 0.5。
任何 vim 的表达式都可以用来求值,这就是表达式寄存器的强大之处。再举个有趣的例子:
<C-R>=range(30)
你可以自己试试结果什么样。有些时候可能和你样的不一样,用一用就知道 <C-R> 是什么原理了。
再来个可能更实用一些的例子,比如:
<C-R>=strftime('%Y-%m-%d%H:%M:%S')
用来插入系统时间,每次表达式的值都是现算的,所以每次插入的内容也就不一样。
我只是举一些好理解的例子,其实这个东西在开发 vim 脚本的时候会比较常用。用好了可以很强大。
如果你在其实地方遇到了 <C-R>= 的用法还是看不明白,可以再追问。
⑤ 在vim的一般模式摁下r键有什么功能
用于替换烂棚光标下的文字。
比如你按 ra,宏历携就蔽伏会把光标下的那个字符替换成 a。如果按 5ra 就会把连续 5 个字符替换成 a。
感觉这个功能在写程序的时候偶尔会用,编写一般文本时很少会用到。
⑥ 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个字
d0:删至行首
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号删除寄存器中。
tags 用法
在函数中移动光标
[{ 转到上一个位于第一列的{
}] 转到下一个位于第一列的{
{ 转到上一个空行
} 转到下一个空行 ([ and ] 也分别是两个指令)
ctrl+t 跳回
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方
Vim 的创造者是一名计算机程序员,因此这就不奇怪 Vim 中有许多帮助编写程序的功能:
跳转到标识符被定义和使用的地方;在另一个窗口中预览有关的声明等等。
⑦ vim的 \n 和 \r 什么区别
^M 其实就是 \r ,也就是知知说这个文件所使用的回车是 mac 中的。也就是 apple公司生产的操作系统内默认的换行符。
在 windows中默认是 \r\n
在 unix/linux 中默认是 \n
只需要在vi/vim 中输入搭闷消命令:%s/\r//g或者:%s/[ctrl-v][ctrl-m]//罩段g ====== :%s/^M//g
效果是一样的,注意这里的 ctrl-v 和 ctrl-m 是你的按键,不是直接打字母上去,所以显示出来的是:%s/^M//g
⑧ Linux中vi、vim命令大全
一、一般模式:删除、复制与粘贴类命令
x,X
x为向后删除一个字符,X为先前删除一个字符
nx(n代表数字)
向后删除n个字符
dd
删除当前行
D
删除当前行所有字符,试成为空行
ndd(n代表数字)
删除光标所在行的向下n列
d1G
删除光标所在行到第一行的所有数据
dG
删除光标所在行到最后一行的所有数据
yy
复制光标所在行
y1G
复制光标所在行到第一行的所有数据
yG
复制光标所在行到最后一行的所有数据
ynj(n代表数字)
复制光标所在行向下n+1行
dnj(n代表数字)
删除光标所在行向下n+1行
p,P
p为复制的数据粘贴在光标的下一行,P为复制的数据粘贴在光标的上一行
J
将光标所在行与下一行的数据结合成一行
u
恢复前一个动作(undo)
二、编辑模式命令
i,I
i为在当前光标所在处插入输入的文字,I为在光标所在行第一个非空字符插入输入的文字
a,A
a为在当前光标所在处下一个字符插入输入的文字,A为在光标所在行最后一个字符的下一个字符处插入输入的文字
o,O
o为在光标所在行的下一行行首开始插入字符,O为在光标所在行的上一行行首开始插入字符
r,R
r为替换光标所在那一个字符,R为一直替换光标所指的文字,直到退出
Esc
退出,回到一般模式
三、命令模式
h
光标向左移一个字符
j
光标向下移一个字符
k
光标向上移一个字符
l
光标向右移一个字符
Ctrl+f
屏幕向下翻一页
Ctrl+b
屏幕向上翻一页
Ctrl+d
屏幕向下翻半页
Ctrl+u
屏幕向上翻半页
+
光标移动到下一行的第一个非空字符
-
光标移动到当前行的第一个非空字符
n空格(n代表数字)
光标向当前行向右移动n个字符
0(数字0)
光标移动到当前行的第一个字符(可以为空字符,注意与-区分)
$
光标移动到当前行的最后一个字符(可以为空字符,注意与-区分)
H
光标移动到当前屏幕最上方的那一行的第一个非空字符
M
光标移动到当前屏幕最中间那一行的第一个非空字符
L
光标移动到当前屏幕最下方的那一行的第一个非空字符
G
光标移动到该文章最后一行的第一个非空字符
nG(n代表数字)
光标移动到该文章第n行的第一个非空字符
n
光标从当前行向下移动n行的第一个非空字符
/word
在光标之后查找word字符串
?word
在光标之前查找word字符串
:s/word1/word2/g
在光标当前行查找word1,并替换成word2
:n1,n2s/word1/word2/g
在第n1行与第n2行之间查找word1,并替换成word2
:%s/word1/word2/g
整个文章查找word1,并替换成word2
:w
将编辑的数据保存到硬盘文件中
:w
[filename]
将编辑后的数据保存到硬盘的另一个文件中
:r
[filename]
在编辑数据时,读入另一个文件中的数据,即将filename文件中的内容加到光标所在行下一行
:wq或:x
保存并退出
:q
退出,适用于未修改的文件
:q!
强制退出,适用于修改文件后不保存退出
:set
nu
显示行号
:set
nonu
取消行号
:n1,n2
w
[filename]
将n1到n2行的内容保存到名为filename的文件中
⑨ vim的“\n”和“\r”有什么区别
在vim中,
是换行,
是回车。
⑩ VI和VIM命令的操作
vi编辑器是分为三种状态的
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
[Ctrl] + [d] 屏幕‘向下’移动半页
[Ctrl] + [u] 屏幕‘向上’移动半页
0 或功能键[Home] 这是数字‘ 0 ’:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
gg 移动到这个档案的第一行 (常用)
n<Enter> n 为数字。光标向下移动 n 行(常用)
n<space> 那个 n 表示‘数字’,光标会向右移动这一行的 n 个字符。
n<Enter> n 为数字。光标向下移动 n 行(常用)
/word 向下寻找某个单词
?word 向下寻找某个单词
n 向下重复执行搜索命令
N 向上重复执行搜索命令
dd 删除游标所在的整列
yy 复制游标所在那行
. 重复上一个动作
主要为一般模式到编辑模式的切换
i,I a,A o,O r,R 都可以实现到编辑模式的切换
其中r,R实现的是取代模式
Esc 为推出编辑模式回到常用模式
:w 编辑的数据写入硬盘
:w! 如果未见为只读的时候强制写入
;q 离开
:q! 不储存强制离开
:wq 储存后离开
:wq! 储存后强制离开
ZZ 若档案没有动过则直接离开,若档案已动过则保存离开
:set nu 设置行号
:set nonu 取消行号