• 《Linux》day2--tmux和vim


    tmux

    在普通的终端中,窗口和其中由于session(任务)而启动的进程是连在一起的,关闭窗口,session就结束了,session内部的进程也会终止,不管是否运行完。但是在具体使用中,我们希望当前的session隐藏起来,在终端中做其他事情,但是又不希望session及其进程被关闭。这样就需要用到tmux,对session进行解绑。之后再想继续出来这个session的时候,再次绑定就可以回到之前的工作状态。

    1.tmux功能

    • 分屏
    • 允许断开Terminal连接后,继续运行进程,即将当前的终端关闭后,之后打开还可以恢复之前的程序

    2.tmux结构

    一个tmux可以同时包含多个session,一个session可以包含多个window,一个window可以包含多个pane
    相当于一个树形结构

    在这里插入图片描述

    3.tmux操作

    安装tmux(Ubuntusudo apt-get insall tmux

    1. tmux:新建一个session,其中包含一个window,widow中包含一个pane
    2. ctrl + b 后松手,然后按 %(相当于tmux split-window):将当前的pane左右平分成两个pane
    3. ctrl + b 后松手,然后按 " (双引号,相当于tmux split-window -h):将当前的pane上下平分成两个pane
    4. ctrl + d :关闭当前的pane;如果当前window下所有的pane均已关闭,则自动关闭window,若当前session中所有的window均已关闭,则自动关闭session(tmux detach的缩写)
    5. ctrl + b 后松手:然后按方向键,可以选择相邻的pane(鼠标点击可以选择pane)
    6. 同时按住 ctrl + b 和 方向键,可以调整pane之间的分割线位置(鼠标拖动pane之间的分割线,也可以调整)
    7. ctrl + b 后松手,然后按 z :可以将当前的pane全屏 / 取消全屏
    8. ctrl + b 后松手,然后按 d :挂起当前的session
    9. tmux a :打开之前挂起的session(tmux a 是 tmux attach 的缩写)
    10. ctrl + b后松手,然后按 s ,选择其他session
      上方向键:选择上一项 session/window/pane
      下方向键:选择下一项 session/window/pane
      右方向键:展开当前项 session/window
      左方向键:闭合当前项 session/window
    11. ctrl + b后松手,然后按 c :在当前session中创建一个新的window
    12. ctrl+ b 后松手,然后按 w :选择其他window(操作与10完全一样)
    13. ctrl + b后松手,然后按 pgup :翻阅当前pane中的内容(鼠标滚轮也可以翻阅当前pane中的内容)
    14. 在tmux中选中文本时,需要按住shift键
    15. 在tmux复制/粘贴文本的通用方式:
      ①ctrl + b后松手,然后按 [
      ②用鼠标选中文本,被选中的文本会自动复制到tmux的剪贴板中
      ③ctrl + b后松手,然后按 ] ,会将剪贴板中的内容粘贴到光标处
    16. ctrl + b + n:选择第n个窗口
    17. ctrl + b + p:切换到上一个窗口(还是用ctrl + b + w 好用)
    18. tmux ls:列出所以tmux会话

    补充:

    1. 在使用tmux时,我们可以初始给session一个名字:tmux new -s your_session_name
    2. 同理,我们在创建一个新的window时,可以给他一个名字:tmux new-window -n your_window_name
    3. 给session重命名:tmux rename-session - t old_session_name new_session_name
    4. 杀死一个session:tmux kill-session -t your_session_name
    5. tmux a -t name:选择某个tmux

    vim

    vim功能

    • 命令行模式下的文本编辑器
    • 根据文件扩展名自动判别编程语言;支持代码缩进、代码高亮等功能
    • 使用方式:vim filename;如果已有该文件,则打开它,若没有该文件,则创建一个名字为filename的文件

    vim模式

    1.一般命令模式:默认模式;命令输入模式,类似于打游戏放技能,按不同字符,即可进行不同操作;可以复制、粘贴、删除文本等;
    2.编辑模式:在一般命令模式下按 i ,会进入到编辑模式;按下 esc键会退出编辑模式,返回到一般命令模式
    3.命令行模式:在一般命令模式下按 :/ ?三个字母中任意一个,会进入到命令行模式,命令行在最下面;可以查找、替换、保存、退出、配置编辑器等。

    vim操作

    1. i:进入到编辑模式
    2. esc:进入到一般命令模式
    3. h 或 左方向键:光标向左移动一个字符
    4. j 或 下方向键:光标向下移动一个字符
    5. k 或 上方向键:光标向上移动一个字符
    6. l 或 右方向键:光标向右移动一个字符
    7. n:n表示数字,按下数字后再按空格,光标会向右移动这一行的n个字符
    8. 0 或 功能键[ home ]:光标移动到本行开头
    9. $ 或 功能键 [ end ]:光标会移动到本行行末
    10. G:光标移动到最后一行
    11. : n 或 nG:n为数字,光标移动到第n行
    12. gg:光标移动到第一行,相当于 1G
    13. n< Enter >:n为数字,光标向下移动 n 行
    14. /word:向光标之下寻找第一个值为word的字符串
    15. ?word:向光标之上寻找第一个值为word的字符串
    16. n:重复前一个查找操作
    17. N:反向重复前一个查找操作
    18. :n1,n2s/word1/word2/g:n1、n2为数字,在第 n1 行与 n2 行之间寻找word1这个字符串,并将该字符串替换为word2
    19. :1,$s/word1/word2/g:将全文的word1替换为word2
    20. :1,$s/word1/word2/gc:将全文的word1替换为word2,并且替换前要求用户确认
    21. v:选中文本
    22. d:删除选中的文本
    23. dd:删除当前行(删除整行的时候,我们如果再执行p复制的时候,删除的整行就会被复制到光标的下一行)
    24. y:复制选中的文本
    25. yy:复制当前行
    26. p:将复制的数据在光标的下一行/下一个位置粘贴(如果是yy复制一行,则在光标下一行粘贴)(如果我们不想再下一行复制的话,可以使用:$p,就不会重新另起一行了)
    27. u:撤销
    28. ctrl + r :取消撤销
    29. 大于号 > :将选中的文本整体向右缩进一次
    30. 小于号 < :将选中的文本整体向左缩进一次
    31. :w:保存
    32. :w!:强制保存
    33. :q:退出
    34. :q!:强制退出
    35. :wq:保存并退出
    36. :set paste:设置粘贴模式,取消代码自动缩进
    37. :set nopaste:取消粘贴模式,开启代码自动缩进
    38. :set nu:显示行号
    39. :set nonu:隐藏行号
    40. gg = G:将全文代码格式化
    41. :noh:关闭查找关键词高亮
    42. ctrl + q:当vim卡死时,可以取消正在执行的命令
    43. 异常处理:每次用vim编辑文件时,会自动创建一个 .filename.swp 的临时文件;如果打开某个文件时,改文件的swp文件已存在,则会报错;处理方法:①找到正在打开改文件的程序,并退出;②直接删掉swp文件即可
    44. delete:删除下一个字符
  • 相关阅读:
    TypeError: _wrap_socket() argument ‘sock‘ must be _socket.socket, not SSLSocket
    51单片机单片机基础知识
    如何实现不同MongoDB实例间的数据复制?
    数据结构与算法之Python实现——栈
    记录裁员后第一周的面试记录
    线程崩溃为什么不会导致 JVM 崩溃
    工厂管理软件中的计划排产是什么
    Flask入门学习教程
    .net如何优雅的使用EFCore
    hadoop
  • 原文地址:https://blog.csdn.net/qq_59702185/article/details/127620330