MacOS 终端 vim常用命令

前言

vim在开发中是必备神器,不管是做服务端开发、前端开发,那都是必备神器。如果没使用过vim,那不用继续往下看了!
我主要是做iOS开发,但是我的Xcode一定要安装XVim插件,因为它能让我在Xcode中使用vim的命令,开发效率明显提高。
其实,不只是在开发中使用vim,在使用linux相关操作时,也经常需要使用vim命令的。
写下此篇,目的只是为了给自己整理和记录相关命令笔记。高手请飘过!

常用命令

如果你想将当前 command line 会话切换到其他目录,需要用到三个命令:pwd,ls和cd。

pwd的含义是“print working directory”,会显示当前目录的绝对路径。
ls的含义是“list directory contents”,它会列出当前目录的内容。这个命令还有其他参数可选。
cd的含义是“change directory”,它会改变当前目录到你指定的目录。如果你不指定,则会返回你的 home folder。
pwd      当前工作目录

cd(不加参数)  进root

cd(folder)  进入文件夹

cd ..      上级目录

cd ~      返回root

cd -      返回上一个访问的目录

rm 文件名     删除

cat 文件名(|less)  在终端下查看文件

ls        列出目录下所有文件

cp 文件名 目标目录  将文件拷贝到目标目录下

~代表root  如:~/Document/CPP2/

mkdiv      新建文件夹

g++ 源文件名    编译源文件,产生a.out

./文件名      运行  例如:./a.out < 输入文件名 > 输出文件名

control+d     中断a.out运行

nano       编写脚本语言  ctrl+o存储

nano ....sh    打开

bash ....sh    运行脚本

echo "...$i..."   输出语句

tar -zxf abc.tar.gz     tar文件解压

ssh [email protected]   以root账号远程连接222服务器

unrar x abc.rar     rar文件解压,需要安装rar工具

复制区块:

在visual模式下,将光标定位到某行,复制一部分内容,然后ctrl+v就会出现VISUAL BLOCK,然后下/右移动将某个范围都选择。

对字符操作:

x, X                 在一行字当中,x为向后删除一个字符 (相当亍 [del] 按键),X为向前删除一个字符(相当亍 [backspace] 亦即是退格键) (常用)

nx                   n 为数字,连续向后删除 n 个字符。丼例来说,我要连续删除 10 个字符, 『10x』。

d$                   删除游标所在处,到该行行尾的所有字符

d0                   删除游标所在处 ,到该行行首的所有字符
 对行操作:

dd                    删除游标所在的那一整列(常用)

ndd                  n 为数字。删除光标所在的行向下n行,例如 20dd 则是删除 20行 (常用)

d1G                 删除光标所在到第一行的所有数据

dG                   删除光标所在到最后一行的所有数据

复制相关:

yy                 复制游标所在癿那一行(常用)

y1G               复制光标所在列到第一列癿所有数据

yG                复制光标所在列到最后一列癿所有数据

y0                复制光标所在癿那个字符到该行行首癿所有数据

y$                复制光标所在癿那个字符到该行行尾癿所有数据

替换相关:

r   取代光标处的字符(替换单个)
R   进入替换模式(替换多个)
cc  与dd相同,相当于删除行
S   与dd相同,相当于删除行
cw  相当于删除一个单词
C   相当于删除当前光标处到行尾的字符
c0  相当于删除当前光标处到行首的字符
c^  与c0相同

批量替换:

// 替换所有行中的所有replaced_source_pattern为target_pattern
:%s/replaced_source_pattern/target_pattern/g

// 替换当前行第一个replaced_source_pattern为target_pattern
:s/replaced_source_pattern/target_pattern/

// 替换当前行所有replaced_source_pattern为target_pattern
:s/replaced_source_pattern/sky/g 

// 替换第n行开始到最后一行中每一行的第一个replaced_source_pattern为target_pattern
:n,$s/replaced_source_pattern/target_pattern/

// 替换第n行开始到最后一行中每一行所有replaced_source_pattern为target_pattern
:n,$s/replaced_source_pattern/target_pattern/g 

// 替换每一行的第一个replaced_source_pattern为target_pattern
// 相当于:g/replaced_source_pattern/s//target_pattern/
:%s/replaced_source_pattern/target_pattern/

n 为数字,若n为.,表示从当前行开始到最后一行

但是,如果我们的文本中就有/怎么办?我们可以使用#来作为分割符的。
可以使用#作为分隔符,此时中间出现的/不会作为分隔符,只是作为普通文本处理:

:s#gxp#gongxiaopeng

将当前行的gxp替换成gongxiaopeng

例如,要将所有的test替换成test1,:%s/test/test1/g

持续更新

今天收集到自己常用的命令就写这么多了,后续用到再收集记录下来

你可能感兴趣的:(MacOS 终端 vim常用命令)