VIM

在Linux终端中,Vim是一个强大的文本编辑器,可以用于编辑各种类型的文件。它有一个学习曲线,但一旦掌握了基本操作,它会变得非常高效。
简而言之

vi编辑器是Linux系统下标准的编辑器。
那么简单的理解,就像是Windows下的记事本。

以下是一些Vim的基本使用方法:

vi的打开方式

vi 文件名.后缀

vi的三种形式

vi 编辑器有三种模式:命令模式插入(编辑)模式(i)底行模式(: )
命令模式为默认情况刚打开文件便进入到命令模式

当在命令模式下按 i 键时会进入插入模式,在插入模式下方便对文本进行编辑。按ESC键退出插入模式到命令模式

当在命令模式下按 :会进入到底行模式,底行模式下可以进行一些常用指令。按回车推出底行模式到命令模式

使用鼠标控制vi

在命令模式下输入,可使用鼠标控制vi

:set mouse=a

输入以下指令可以关闭鼠标功能

:set mouse-=a

或者直接在linux下 vi /etc/vim/vimrc,下拉到最后一行,在endif 下面输入,这样每次打开vi都可以使用鼠标控制vi了

set mouse=a

使用鼠标复制功能
用鼠标和可视模式复制/粘贴 (‘mouse’ 选项必须设置,见上):

  1. 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左
    键。这会启动可视模式并高亮选择区域。
  2. 按 “y” 抽出可视文本到无名寄存器里。
  3. 在要插入的位置上按鼠标左键。
  4. 鼠标中键(滚轮)。

vi命令模式下常用快捷键

dd      删除(剪切)光标所在行整行       
ndd     删除光标所在行起向下n行(5dd,删除5行)
y       复制鼠标选中字符
yy      复制光标所在行 
nyy     复制光标所在行向下n行
p       粘贴 复制或剪切的内容(粘贴到下一行)
x       向后删除当前光标所在字符            
X       向前删除当前光标所在字符
gg      把光标跳转到本文件的第一行       
G       把光标跳转到本文件的最后一行
Shift+^ (shift+6)       把光标跳转到所在行的行首        
shift+$ (shift+4)       把光标跳转到所在行的行尾    
u       撤销,返回上一步 Ctrl + r 取消撤销                   
r       替换当前光标所在位置(一个字母)    
R       向后连续替换

vi底行模式下常用快捷键

:set nu      显示行号                       
:set nonu    取消显示行号
:q    只退出,不保存                 
:wq   保存退出
:q!   强制退出                       
:wq!  强制保存退出
:%s/old/new 将old替换成new          
:/string  查找字符串
:n   定位到n行(n指数字)

Tmux

我们在linux服务器上的工作一般都是通过一个远程的终端连接软件连接到远端系统进行操作,例如使用xshell或者SecureCRT工具通过ssh进行远程连接。在使用过程中,如果要做比较耗时的操作,例如有时候进行编译,或者下载大文件需要比较长的时间,一般情况下是下班之后直接运行希望第二天早上过来运行完成,这样就不用耽误工作时间。但是网络有时候不稳定,可能在半夜会出现连接断掉的情况,一旦连接断掉,我们所执行的程序也就中断,我们当然可以写一个脚本后台运行,但是还是不方便。那么有没有一种工具可以解决这样的问题呢。这就是我们这里要提到的tmux了。其实类似tmux的工具还有很多。例如gnu screen等。tmux刚好可以解决我们描述的问题,当我们在tmux中工作的时候,即使关掉SecureCRT的连接窗口,再次连接,进入tmux的会话我们之前的工作仍然在继续。

https://blog.csdn.net/zong596568821xp/article/details/83785387

tmux中有3种概念,会话窗口(window),窗格(pane)。会话有点像是tmux的服务,在后端运行,我们可以通过tmux命令创建这种服务,并且可以通过tmux命令查看,附加到后端运行的会话中。一个会话可以包含多个窗口,一个窗口可以被分割成多个窗格(pane)

Tmux安装,Vi同理

sudo apt-get install tmux

新建会话

tmux new -s [会话名]

挂起会话

ctrl+b d

重连会话

tmux a -t session_name或者编号

重命名会话

tmux rename -t [旧会话名] [新会话名]

查看会话

tmux ls

如果是在某个会话环境中想查看会话列表,可以用以下指令来获得,然后用键盘选择就可进入

ctrl+b s

控制窗口

创建新窗口:先ctrl+b后c

重命名当前窗口:先ctrl+b后',' 只改变名字不改变序号 窗口见得跳转还是用序号

切换到前一个窗口:先ctrl+b后p

切换到下一个窗口:先ctrl+b后n

切换到特定窗口:先ctrl+b后数字键,切换到对应的窗口,窗口号在窗口下端的status bar上显示

左右分窗格:先ctrl+b后%

上下分窗格:先ctrl+b后"

窗格光标切换:如单独使用方向键时会操作到当前窗格的方向,先ctrl+b后方向键,切换到不同窗口

分栏之后 将一个窗格放大到全窗口/缩回原窗格大小:先ctrl+b后z

将窗格按照箭头方向放大/缩小:先根据第3点调制鼠标可以使用,分栏后用鼠标拖动分界线即可

关闭会话

ctrl+d或者是输入exit来关闭,就连接不上了,只能用来退出window,所有window退出之后关闭session。

关闭panel

ctrl+b x 关闭当前使用中的pane,操作之后会给出是否关闭的提示,按y确认即关闭。

Shell

Ctrl + a :移到行首
Ctrl + e :移到行尾
Ctrl+L:一键清屏(向上隐藏)
Clear:清屏(上面无内容)
Ctrl+u:删除光标所在行
Ctrl+d:向后删除光标所在位置字符
Ctrl+c:终止当前任务(执行的命令)
Ctrl+z:将任务挂起,放入后台

参考

https://blog.csdn.net/zong596568821xp/article/details/83785387
https://blog.csdn.net/qq_40269162/article/details/131773732?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-131773732-blog-83785387.235%5Ev43%5Econtrol&spm=1001.2101.3001.4242.1&utm_relevant_index=3
https://blog.csdn.net/qq_41554005/article/details/93904075?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-93904075-blog-131773732.235v43control&spm=1001.2101.3001.4242.1&utm_relevant_index=3

更多推荐