Make your ternimal more useful

news/2025/2/3 10:56:12/文章来源:https://www.cnblogs.com/timothy020/p/18697379

目录
  • 引入
  • Iterm2配置和Zshell配置
  • Tmux
  • Vim配置
    • 基本使用
    • 插件配置
    • Coc默认配置快捷键说明
    • NerdTree快捷键
    • 分屏:Buffer, Windows和Tab

引入

本着好程序员要用好终端的信念,加之在使用mac过程中对快捷键依赖度增加,对鼠标的依赖逐渐减少,所以打算尝试配置终端的代码编写环境。

不曾想到一脚踏入兔子洞,许多配置灵活性很强,深不见底,并非一次性可以配置完成,需要不断迭代,遂在此记录一些配置的教程和要点,不断完善。

软件:采用Iterm,shell是zshell,分屏和多任务处理采用tmux,文本编辑采用vim。

image-20250203104558242

Iterm2配置和Zshell配置

Iterm:更改配色,字体和状态栏

zshell:使用oh-my-zshell配置git,终端命令自动补全,语法高亮插件

配置文件:.zshrc

plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)

参考教程

Tmux

视频教程

快捷键速查

进阶配置

Session:

命令 说明
tmux [new -s sessionName] 创建一个[指定名称的] tmux 会话
tmux kill-session [-t sessionName] 终止Session
tmux rename-session -t OldName newName 给当前会话命名
tmux ls 列出所有Session
tmux a [-t sessionName] 连接到一个已有Session
Ctrl + b d 分离当前Session
Ctrl + b s 列出所有Session

Window:

命令 说明
Ctrl + b c 创建新窗口
Ctrl + b n 切换到下一个窗口
Ctrl + b p 切换到上一个窗口
Ctrl + b <n> 切换到指定编号的窗口
Ctrl + b , 修改当前window名称
Ctrl + b w 显示所有的窗口,快速选择一个切换

Pane:

命令 说明
Ctrl + b % 水平分割
Ctrl + b " 垂直分割
Ctrl + b <方向键> 切换焦点
Ctrl + b :resize-pane -D/-U 调整窗格大小(上下)
Ctrl + b :resize-pane -L/-R 调整窗格大小(左右)
Ctrl + b x 关闭当前窗格
Ctrl + b [ 进入复制模式,在窗口中选择并复制文本
Ctrl + b ] 退出复制模式,粘贴之前选中的文本

Vim配置

配置文件:.vimrc

基本使用

普通模式快捷键查缺补漏:

快捷键 说明
oshift o 在下一行插入,在上一行插入
:sp:vsp 分屏(后面加文件则分屏打开对应文件)
ctrl v Virtual Block模式
ctrl o 后退
u 撤销
ctrl r 反撤销

普通模式编辑操作的基本逻辑:

<Operation> + <Motion>

操作符(Operation)

操作符 作用 示例
d 删除 dw(删除单词)
c 删除并进入插入模式 cw(更改单词)
y 复制 yy(复制整行)
p 粘贴 p(在光标后粘贴)
> 右缩进 >>(缩进当前行)
< 左缩进 <<(减少缩进)
g~ 切换大小写 g~w(切换单词大小写)
gu 变小写 `gu
------ ------------------ -----------------------
d 删除 dw(删除单词)
c 删除并进入插入模式 cw(更改单词)
y 复制 yy(复制整行)
p 粘贴 p(在光标后粘贴)
> 右缩进 >>(缩进当前行)
< 左缩进 <<(减少缩进)
g~ 切换大小写 g~w(切换单词大小写)
(小写直到行尾)
gU 变大写 gUw(单词变大写)

移动命令(Motion)

Motion 作用 示例
w 移动到下一个单词起始 dw(删除单词)
e 移动到单词结尾 de(删除到单词结尾)
b 移动到前一个单词起始 db(删除前一个单词)
0 移动到行首 d0(删除至行首)
` Motion 作用
------ ------------------------ -----------------------------
w 移动到下一个单词起始 dw(删除单词)
e 移动到单词结尾 de(删除到单词结尾)
b 移动到前一个单词起始 db(删除前一个单词)
0 移动到行首 d0(删除至行首)
\| 移动到行尾               \| `d$`(删除至行尾)            |

| gg | 移动到文件首行 | dgg(删除至文件开头) |
| G | 移动到文件末行 | dG(删除至文件末尾) |
| fX | 向右查找字符 X | dfX(删除到 X) |
| tX | 向右查找 X 前一字符 | dtX(删除到 X 之前) |
| iX | 在X字符之间 | di"(删除"内的内容) |
| aX | 在X字符之间,包括X | da"(删除"内的字符和") |
| ^ | 移动到行首第一个非空字符 | d^(删除到行首第一个字符) |
| { | 向上移动一个段落 | d{(删除上个段落) |
| } | 向下移动一个段落 | d}(删除下个段落) |

插件配置

安装插件管理软件Vim-Plug,按照readme操作即可。

配置:vim状态栏airline,代码补全coc,目录树nerdTree,自动括号匹配auto-pairs

call plug#begin()" List your plugins here
Plug 'vim-airline/vim-airline'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'preservim/nerdtree'
Plug 'jiangmiao/auto-pairs'call plug#end()

参考教程

Coc默认配置快捷键说明

所处模式 快捷键 说明
插入模式 <C-s> 选择范围选择 (通过 CoC 提供的功能触发)
普通模式 gd 跳转到定义 (coc-definition)
普通模式 gy 跳转到类型定义 (coc-type-definition)
普通模式 gi 跳转到实现 (coc-implementation)
普通模式 gr 跳转到引用 (coc-references)
普通模式 K 显示文档预览窗口
普通模式 <C-f> 向下滚动浮动窗口/弹出窗口
普通模式 <C-b> 向上滚动浮动窗口/弹出窗口
可视模式 if 选择函数对象 (coc-funcobj-i)
可视模式 ic 选择类对象 (coc-classobj-i)
可视模式 af 选择整个函数对象 (coc-funcobj-a)
可视模式 ac 选择整个类对象 (coc-classobj-a)
操作模式 if 选择函数对象 (coc-funcobj-i),如dif删除函数内容
操作模式 ic 选择类对象 (coc-classobj-i)
操作模式 af 选择整个函数对象 (coc-funcobj-a)
操作模式 ac 选择整个类对象 (coc-classobj-a)

NerdTree快捷键

修改键位如下:

所处模式 快捷键 说明
普通模式 <C-b> 开关任务树
普通模式 <C-f> 在任务树定位当前文件
.vimrc中添加:
nnoremap <C-b> :NERDTreeToggle<CR>
nnoremap <C-f> :NERDTreeFind<CR>

分屏:Buffer, Windows和Tab

类比一下:

  • Tmux相当于建立一个个虚拟桌面
  • Vim好比是Vscode,是一个桌面软件
  • Vim分屏相当于Vscode中的一个个页签

基本概念介绍

默认快捷键说明

修改快捷键:

" vim分屏
" 切换buffer
nnoremap <C-a> :bn<CR>
nnoremap <C-d> :bp<CR>" 切换windos
nnoremap <LEADER>s <C-W>s
nnoremap <LEADER>v <C-W>vnnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-w> <C-w>w" 调节windows大小
nnoremap <C-[> <C-w>+
nnoremap <C-]> <C-w>-
nnoremap <C-;> <C-w>>
nnoremap <C-'> <C-w><

在Vim界面如何进行文件管理:

  • NerdTree界面按m呼出菜单操作
  • : e fileName创建或编辑文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/878219.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龙哥量化:通达信技术指标编写技巧分享篇1-成交量和换手率

龙哥微信:Long622889代写通达信技术指标、选股公式(通达信,同花顺,东方财富,大智慧,文华,博易,飞狐)代写期货量化策略(TB交易开拓者,文华8,金字塔) 春节假期, 和朋友闲聊,发现在选股思路上很杂乱, 完全没有体系,但是大致可以分为两种,趋势策略和震荡策略,其…

昆明理工大学材料科学与工程学院 2025年硕士研究生招生预测调剂名额 (供考生提前规划)

亲爱的考生: 为助力各位考生提前规划考研调剂方向,昆明理工大学材料科学与工程学院结合近年招生趋势及学科发展需求,预测2025年材料工程相关专业将有部分调剂名额,具体信息如下。欢迎符合条件的考生持续关注! 一、预测调剂专业及名额注: 最终调剂名额以2025年研招网官方发…

hive-pig--pig安装

1.下载 curl https://dlcdn.apache.org/pig/pig-0.17.0/pig-0.17.0.tar.gz -o /opt/software/pig-0.17.0.tar.gz2.解压 tar -zxvf /opt/software/pig-0.17.0.tar.gz -C /usr/local/src/ mv /usr/local/src/pig-0.17.0/ /usr/local/src/pig 3.把二进制路径添加到命令行路径 echo…

PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络

神经常微分方程(Neural ODEs)是深度学习领域的创新性模型架构,它将神经网络的离散变换扩展为连续时间动力系统。与传统神经网络将层表示为离散变换不同,Neural ODEs将变换过程视为深度(或时间)的连续函数。这种方法为机器学习开创了新的研究方向,尤其在生成模型、时间序…

[ArkUI] 记录一次 ArkUI 学习心得 (1) -- 基础概念

1.一个原生鸿蒙应用的源码目录其中:ets是项目的源码目录.ets/pages是页面目录, 用于渲染页面.resources是资源目录,下面会讲. 2.第一个原生鸿蒙应用 话不多说,直接上代码. @Entry @Component struct Index {@State message: string = My First Program!;@State num: number = 0…

互联网已经没法用了

图片:作者制作我们已经到了这样的地步——曾经能让我们随时随地获取全世界信息的互联网,现在已经完全没法用了。 罪魁祸首是广告,情况糟糕到一种极端的程度,以至于它被称为“广告末日”(adpocalypse)。 现在我打开的几乎每个网站都塞满了广告,整个页面都快撑爆了。在电脑…

uniCloud(dcloud.net.cn)https证书配制

前端网页托管-->参数配置-->域名信息-->更新证书 阿里云 https--SSL证书获取

Cisco Catalyst 9800-CL Wireless Controller for Cloud, IOS XE Release 17.16.1 ED - 思科虚拟无线控制器系统软件

Cisco Catalyst 9800-CL Wireless Controller for Cloud, IOS XE Release 17.16.1 ED - 思科虚拟无线控制器系统软件Cisco Catalyst 9800-CL Wireless Controller for Cloud, IOS XE Release 17.16.1 ED 面向云的思科 Catalyst 9800-CL 无线控制器,专为基于意图的网络全新打造…

Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.16.1 ED - 思科无线控制器系统软件

Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.16.1 ED - 思科无线控制器系统软件Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.16.1 ED 思科 Catalyst 9800 系列无线控制器 IOS XE 系统软件 请访问原文链接:https://sysin.org/blog/cisco-cat…

图解收银台

收银核心和支付引擎是支付系统最核心的两个子系统之一。本篇主要讲清楚收银核心的设计与实现,包括收银核心如何渲染可用支付方式,如何做可支付检查,收银台核心的系统架构、领域模型,常见支付方式等。如果说电子商务是现代经济的繁华都市,那么在线支付系统无疑就是最繁忙的…

Easysearch 集群重置 admin 用户密码

admin 用户是 Easysearch 通过配置文件 user.yml 默认添加的,配置如下: ## Demo users admin:hash: "$2y$12$mA9DDk7iOBQA3u.Ebc0QSOVKsgwlkm6OJcrEcpyrTrT5M5It86usq" # 465f7466f79a67b9039dreserved: trueexternal_roles:- "admin"description: "…

Linux 中awk命令自定义函数

001、[root@PC1 test]# echo a | awk function my_length(str) {return length(str)}; {text = "Hello"; print "Length of text:", my_length(text)} Length of text: 5 。