前言
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 root@192.168.1.222 以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
持续更新
今天收集到自己常用的命令就写这么多了,后续用到再收集记录下来