tmux与vim学习笔记
tmux
功能:
1. 分屏 2. 允许断开Terminal连接后,继续运行进程
结构:
一个$tmux$可以包含多个$session$(可以理解为对话),一个$session$可以包含多个$window$(窗口),一个$window$可以包含多个$pane$(小窗口)
实例
操作
指令:ll = ls -la
关闭所有$session$: tmux kill-server
Ac-Terminal 下前缀键被修改成了
Ctrl + a
,一般的默认情况下是Ctrl + b
tmux
: 新建一个$session$ ,其中包含一个$ window$, $window$ 中包含一个 $pane$ ,$pane$ 里打开了一个 $shell$ 对话框。
按下Ctrl + a
后手指松开,然后按%
: 将当前$ pane$ 左右平分成两个 $pane$ 。
按下Ctrl + a
后手指松开,然后按 "
: 将当前 $pane$ 上下平分成两个$ pane $。
Ctrl + d
: 关闭当前$ pane$ ; 如果当前 $window$ 的所有 $pane$ 均已关闭,则自动关闭 window ; 如果当前 $session$ 的所有$ window$ 均已关闭,则自动关闭 $session$ 。
鼠标点击可以选 $pane$ 。
按下 Ctrl + a
后手指松开,然后按 方向键
: 选择相邻的 $pane$ 。
鼠标拖动 $pane$ 之间的分割线,可以调整分割线的位置。
按住 Ctrl + a
的 同时 按 方向键
,可以调整 $pane$ 之间分割线的位置。
按下 Ctrl + a
后手指松开,然后按 z
: 将当前 $pane$ 全屏/取消全屏。
按下 Ctrl + a
后手指松开,然后按 d
: 挂起 当前 $session$ 。
tmux a
: 打开之前挂起的$session$。
按下 Ctrl + a
后手指松开,然后按s
: 选择其它 $session$ 。
1. 方向键 —— 上
: 选择上一项 $session/window/pane$
2. 方向键 —— 下
: 选择下一项 $session/window/pane$
3. 方向键 —— 右
: 展开当前项 $session/window$
4. 方向键 —— 左
: 闭合当前项 $session/window$
选择效果如下图所示:
按下 Ctrl + a
后手指松开,然后按 c
: 在当前 $session$ 中创建一个新的 $window$ 。
按下 Ctrl + a
后手指松开,然后按 w
: 选择其他 window ,操作方法与(12)完全相同。(有区别的是,展开的时候展示的是$window$的那级)
按下 Ctrl + a
后手指松开,然后按 PageUp
: 翻阅当前 $pane$ 内的内容。
鼠标滚轮: 翻阅当前 $pane$ 内的内容。
在tmux中选中文本时,需要按住 shift
键。 (仅支持Windows和Linux,不支持Mac,不过该操作并不是必须的,因此影响不大)
tmux中复制/粘贴文本的通用方式:
按下
Ctrl + a
后松开手指,然后按[
用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
按下Ctrl + a
后松开手指,然后按]
,会将剪贴板中的内容粘贴到光标处
vim
功能:
1. 命令行模式下的文本编辑器。
2. 根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。
3. 使用方式: vim filename
- 如果已有该文件,则打开它。
- 如果没有该文件,则打开个一个新的文件,并命名为 filename
模式:
1. 一般命令模式 默认模式。 命令输入方式: 类似于打游戏放技能,按不同字符,即可进行不同操作。 可以复制、粘贴、删除文本等。
2. 编辑模式 在 一般命令模式 里按下 i
,会进入 编辑模式 。 按下ESC
会退出 编辑模式 ,返回到 一般命令模式。
3. 命令行模式 在 一般命令模式 里按下 :/?
三个字母中的任意一个,会进入 命令行模式 。 命令行在最下面。 可以查找、替换、保存、退出、配置编辑器等。
操作:
一般模式切换到编辑模式(常用)
i
: 在光标所处位置 直接 开始
a
: 在光标所处位置的 下一个字符 开始
o
: 在光标所处位置的 下一行 开始
r
: 取代当前光标处的字符,然后开始
[ESC]
: 退出编辑模式,回到一般模式
光标移动操作
h
或 左箭头键
: 光标向 左 移动 一个字符
j
或 向下箭头
: 光标向 下 移动 一个字符
k
或 向上箭头
: 光标向 上 移动 一个字符
l
或 向右箭头
: 光标向 右 移动 一个字符
n<Space>
: n 为数字,光标 向右移动这一行的n个字符
n<Enter>
: n 为数字,光标 向下移动n行
0
或 功能键[Home]
: 光标移动到 本行开头
$
或 功能键[End]
: 光标移动到 本行末尾
G
: 光标移动到 最后一行
:n
或nG
: n 为数字,光标移动到 第n行
gg
: 光标移动到 第一行 ,相当于 1G
n-
: 光标上移n
行
n+
: 光标下移n
行
查找、替换操作
/word
: 向 光标之下 寻找 第一个值为 word 的字符串。
?word
: 向 光标之上 寻找 第一个值为 word 的字符串。
n
: 重复 前一个 查找操作
N
: 反向 重复 前一个 查找操作
:n1,n2s/word1/word2/g
: n1
与 n2
为数字,在第 n1
行与n2
行之间寻找 word1
这个字符串,并将该字符串 替换 为 word2
:1,$s/word1/word2/g
: 将全文的 word1
替换为 word2
:1,$s/word1/word2/gc
: 将全文的 word1
替换为word2
,且在替换前 要求用户确认。
文本操作(可搭配 数字+<Enter>/<Space>、0、G、$
等使用,达到预期组合效果)
v
: 选中文本 (按两下ESC
退出该模式)
d
: 删除选中的文本
dd
: 删除当前行
ndd
: 删除以当前行开始的n
行
d$
: 删至行尾(包括光标当前字符)
d0(数字0)
: 删除至行首(不包括光标当前字符):
c
: 实际效果就是剪切的同时,从正常模式进入插入模式(其他功能与d
一致)。
y
: 复制选中的文本
yy
: 复制当前行
p
: 将复制的数据在光标的下一行/下一个位置 粘贴
P
: 将复制的数据在光标的上一行/上一个位置 粘贴
10p
: 多次粘贴,粘贴 10
次内容
u
: 撤销
Ctrl + r
: 取消撤销
>
: 将选中的文本整体 向右缩进一次
<
: 将选中的文本整体 向左缩进一次
x
: 删除光标之后(选中)的一个字符
X
:删除光标之前一个字符
ggdG
将全文本删掉。
shift
+ 鼠标选中vim里的文本可以按 Ctrl
+ins
复制到系统粘贴板上,将文本粘贴到自己本地的Windows环境中。
多行操作
将n1
行到n2
行之间的内容拷贝到第n3行下: :n1,n2 co n3
将n1
行到n2
行之间的内容移至到第n3行下: :n1,n2 m n3
将n1
行到n2
行之间的内容删除: :n1,n2 d
将[2,3]
行复制插入到光标所在行的下方: :2,3 co .
:1,3y # 复制[1,3]行内容
:10,$y # 复制第10行及以后所有行
:1,$y # 复制所有行
命令行操作
:w
: 保存
:w!
: 强制保存
:q
: 退出
:q!
: 强制退出
:wq
: 保存并退出
:set paste
: 设置成粘贴模式,取消代码自动缩进
:set nopaste
: 取消粘贴模式,开启代码自动缩进
:set nu
: 显示行号
:set nonu
: 隐藏行号
:noh
关闭查找关键词高亮
gg=G
: 将全文代码格式化
Ctrl + q
: 当vim卡死时,可以 取消当前正在执行的命令
异常处理 :
每次用vim编辑文件时,会自动创建一个.filename.swp的临时文件。
如果打开某个文件时,该文件的swp文件已存在,则会报错。此时解决办法有两种:
找到正在打开该文件的程序,并退出
直接删掉该swp文件即可
复制
yy
: 复制游标所在行整行
2yy
: 复制2
行
y^
: 复制至行首,或y0
y$
: 复制至行尾
yw
: 复制一个word
y2w
: 复制两个word
yG
: 复制至文件尾
y1G
: 复制至文件首
剪切
dd
剪切游标所在行整行
d^
剪切至行首,或d0
d$
剪切至行尾
dw
剪切一个word
dG
剪切至文件尾
更多操作查阅: vim常用命令