Acwing - Linux基础课(二)- tmux&vim

tmux和vim两个工具

操作需要足够熟练

可以直接在Terminal进行coding

tmux比screen强太多

tmux

功能(作用):

  • 分屏
  • 允许断开Terminal连接后,继续运行进程

结构:

一个tmux可以包含多个session,一个session可包含多个window,一个window可以包含多个pane。每个pane是个最小单位,每个pane会打开一个Shell对话框

tmux操作:

ctrl + a 是yxc修改后的prefix,默认的前缀是ctrl + b

  1. tmux:新建一个session,其中包含一个window,window包含一个pane,pane里打开一个shell对话框

  2. 按下 ctrl + a 后手指松开,然后按%,将当前pane左右平分为2个pane

  3. 按下ctrl + a后手指松开,然后按",将当前pane上下平分为2个pane

  4. ctrl + d:关闭当前pane,若当前window的所有pane均已关闭,则自动关闭window;若当前session的所有window均已关闭,则自动关闭session

  5. 鼠标点击可以选pane

  6. 按下ctrl + a后手指松开,然后按方向键,可以选择相邻的pane

  7. 鼠标拖动pane之间的分割线,可以调整分割线的位置

  8. 按住ctrl + a,同时按方向键,可以调整分割线的位置

  9. 按下ctrl + a后手指松开,然后按z,将当前pane全屏/取消全屏

  10. 按下ctrl + a后手指松开,然后按 d,挂起当前session

  11. tmux a 打开之前挂起的session

  12. 按下ctrl + a后手指松开,然后按s,选择其他session

    • 方向键;选择上一项 session/window/pane
    • 方向键;选择下一项 session/window/pane
    • 方向键;展开当前项 session/window
    • 方向键:闭合当前项 session/window
  13. 按下ctrl + a后手指松开,然后按c,在当前session中创建一个新的window

  14. 按下ctrl + a后手指松开,然后按w,选择其他window;操作方法与12完全相同

  15. 按下ctrl + a后手指松开,然后按PageUp,翻阅当前pane内的内容

  16. 鼠标滚轮:翻阅当前pane内的内容

  17. 在tmux中选中文本时,需要按住shift键(仅支持windows和linux,不支持mac)

  18. tmux中复制/粘贴文本的通用方式

    • 按下ctrl + a后松开手指,然后按[
    • 用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
    • 按下ctrl + a后松开手指,然后按],会将剪贴板中的内容粘贴到光标处

    也可以按住 Shift ,然后用鼠标选中文本,然后用Ctrl + Insert进行复制,可以复制到电脑本机的剪切板上

小结:

tmux -V 查看tmux的版本

tmux 创建一个session,其中包含一个window,window中包含一个pane,pane里打开一个shell对话框

tmux new -s <session_name> 创建一个session,并为其命名

tmux ls 显式所有的tmux会话列表

tmux a 连接上一个会话(a for attach

tmux a -t <session_name> 连接指定名称 的会话

tmux rename -t s1 s2 将会话s1重命名为s2

tmux kill-session 关闭上次打开的会话

tmux kill-session -t s1 关闭会话s1

tmux kill-session -a -t s1 关闭除了s1之外的所有会话

tmux kill-server 关闭所有会话

进入tmux窗口后,按下快捷键后进行操作,默认快捷键是Ctrl + b,下文用prefix代替(注意prefix a 中间有个空格,表示的意思是,先按下prefix,再按a;如果需要同时按下,则会用prefix + a 来表示)

prefix s 列出所有会话,可以用方向键进行会话切换

prefix $ 重命名会话

prefix d 分离当前会话(d for detach

prefix c 创建一个新的窗口

prefix , 重命名当前窗口

prefix w 列出当前会话的所有窗口,可以进行切换

prefix n 进行下一个窗口(n for next

prefix p 进行上一个窗口(p for previous

prefix 0~9 切换到编号为0~9对应的窗口

prefix . 修改当前窗口的索引编号

prefix ' 随后输入数字,切换到指定编号的窗口(可大于9)

prefix & 关闭当前window

prefix % 左右分屏

prefix " 上下分屏

prefix 方向键 切换pane

prefix q 显示pane的编号

prefix o 顺时针切换pane(切换光标到其他的pane)

prefix+o 将不同的pane进行切换(将pane1换到pane2的位置)

prefix x 关闭当前pane

ctrl d 关闭当前pane

prefix <space> 重新排列当前window下的所有pane

prefix ! 将当前pane放置到一个新的window中

prefix t 在当前pane中显示时间

prefix z 将当前pane全屏/取消全屏

不使用鼠标的,在tmux中复制粘贴文本的方式:

  1. prefix [ 进入文本复制模式

  2. Ctrl + Space 指定文本复制的起始位置

    用方向键选择要复制的文本

  3. Alt + w 将文本保存到tmux的buffer中

  4. prefix ] 将文本粘贴到某个地方

通常,由于ctrlb在键盘上相隔较远,我们会设置prefixctrl + a。通过在用户的home目录新建一个.tmux.conf文件来进行个性化配置。

使用vim打开一个文件

vim ~/.tmux.conf

输入如下内容

# Send prefix 
set-option -g prefix C-a 
unbind-key C-a 
bind-key C-a send-prefix

即可将prefix替换成Ctrl + a

vim

功能

  1. 命令行模式下的文本编辑器
  2. 会根据文件的扩展名来自动判断编程语言。支持代码缩进,代码高亮等
  3. 使用方式:vim filename
    • 如果已有该文件,则打开它
    • 如果没有该文件,则打开一个新的文件

模式

  1. 一般命令模式(默认)

    可以按不同字符,即可进行不同操作。可以复制,粘贴,删除文本等。

  2. 编辑模式

    在一般命令模式后,按下i,会进入编辑器模式

    按下Esc会退出编辑模式,返回到一般命令模式

  3. 命令行模式

    在一般命令模式下,输入:/? 三个字符的任意一个,会进入命令行模式。命令行在最下面。

    可以查找,替换,报仇呢,退出,配置等。

    比如:set nu开启行号,:set nonu关闭行号

    :q退出,:q!强制退出

    :wq保存并退出

    :qa撤销所有修改, 并退出

操作:

  • i 进入编辑器模式

  • Esc 进入一般命令模式

  • hjkl 上下左右

  • 0 或者Home 移动光标到本行开头(^移动光标到本行第一个非空字符的位置)

  • $或者End 移动光标到本行结尾

  • G 光标移动到最后一行

  • nG或者 :n 光标移动到第n

  • n<Space> n表示数字。按下数字再按空格,光标会向右移动这一行的n个字符

  • n<Enter> n表示数字,按下数字再按回车,表示向下移动n

  • gg 光标移动到第一行,相当于1G

  • /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,并在替换时要求用户确认

  • v 开始选中文本(按两下Esc取消选中)

  • d 剪切选中文本(可以用来做删除)

  • y 复制选中的文本

  • dd 剪切当前行(可以用来做删除)

  • yy 复制当前行

  • p 将复制的文本,在光标的下一个位置进行粘贴

  • u 撤销上一次操作

  • ctrl + r 取消撤销

  • > 将选中的文本整体向右移动(向右缩进)

  • < (向左缩进)

  • :w 保存

  • :w! 强制保存

  • :wq 保存并退出

  • :q 退出

  • :q! 强制退出(不保存修改的部分)

  • :set nu 显示行号

  • :set nonu 隐藏行号(在复制文本时,需要将行号关闭,否则复制出来带有行号)

  • :noh取消高亮(比如用/?开启查找后,会高亮出匹配的字符串,若要取消高亮,用此命令)

  • gg=G 将全文代码格式化

  • :set paste 开启粘贴模式,此时复制代码不会添加自动缩进

  • :set nopaste 关闭粘贴模式,此时会开启代码自动缩进(遇到换行符会在下一行开头自动补全缩进)

  • Ctrl + q 当vim卡死时,可以取消当前正在执行的命令

删掉所有的内容

  1. gg跳到第一行
  2. 按下d,表示我要准备剪切(删除)了(开始删除模式)
  3. 按下G,表示从当前位置删到最后一行

ggdG

比如删掉前5行

  1. gg跳到第一行
  2. 按下d,表示我要准备删了
  3. 按下5G,表示从当前位置删到第5行

ggd5G

异常处理:

每次用vim编辑一个文件时,会自动创建一个.filename.swp的临时文件。

如果打开某个文件时,该文件的swp文件已村在,则会报错。此时可以按如下方式进行解决:

  • 找到正在打开该文件的程序,杀掉
  • 直接删掉该文件的swp文件

用vim时,推荐在tmux中用。这样当发生任何意外情况时,编辑的内容不会丢失

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值