终端下vim给锁住了

本文介绍了一种在Mac终端中常见的问题——XON/XOFF流控制导致的界面卡死现象,并提供了禁用该功能的方法。通过修改~/.bash_profile或~/.bashrc文件中的设置并重启bash配置即可解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景, 同事的mac正在操作一个shell, 里面会去执行某些远程操作的命令. 然后弹出了git的commit comment 界面, 要求输入comments

然后突然这个界面就卡死了, 但是其它分屏, 系统都是正常的.


这个是一个终端的很老的功能, 叫软件流控制(XON/XOFF flow control)

就是当client(terminal emulator), 我们用的终端模拟器 不能接受更多的数据的时, 终端会发送一个 "XOFF" 信号 告诉发送数据端暂停发送, 直到收到"XON"信号


这里发送的 "XOFF" 是告诉内核的 tty 驱动将正在发送数据的进程设置为休眠状态, 直到 tty 驱动发送 "XON" 告诉内核恢复进程, 就好像它从来没有停过一样. 


Ctrl-s(如果你没有修改默认键盘的绑定) 会启用终端的滚动锁定, 这会禁用你的终端模拟器的滚动功能 (通过发送 "XOFF" 信号暂停软件的输出 ).

Ctrl-q 会禁用滚动锁定, 恢复终端滚动 (通过发送 "XON" 信号来恢复软件的输出).


如果要禁用这个功能, 需要在~/.bash_profile 或者~/.bashrc的配置文件里面加上下面的参数并且重启加载bash配置即可

stty -ixon

<think>我们正在处理用户的问题:"我想了解如何在终端中使用vim命令进行文件编辑请问如何在终端中使用vim命令进行文件编辑"根据引用内容,我们可以总结出以下步骤:1.打开或新建文件:在终端中输入`vim文件名`,如果文件存在则打开,不存在则新建。2.三种模式:-命令模式:刚进入vim时的模式,可以执行命令(如保存、退出等)。-输入模式:在命令模式下按`i`等键进入,可以编辑文件内容。-末行模式:在命令模式下按`:`进入,可以输入命令(如保存、退出等)。3.基本操作:-进入输入模式:按`i`(在光标前插入)、`a`(在光标后插入)、`o`(在下一行插入)等。-返回命令模式:按`Esc`键。-进入末行模式:在命令模式下按`:`。-保存文件:在末行模式下输入`w`然后回车。-退出:在末行模式下输入`q`然后回车。如果文件已修改但不想保存,使用`q!`强制退出。-保存并退出:在末行模式下输入`wq`或`x`。4.其他常用命令:-删除当前行:命令模式下按`dd`。-撤销:命令模式下按`u`。-重做:命令模式下按`Ctrl+r`。5.打开文件并定位到指定行:`vim文件名+行号`,例如`vimtest.txt+10`打开文件并定位到第10行。6.配置文件:vim的配置文件为`vimrc`,可以设置个性化选项。根据上述总结,我们将分步骤详细说明如何使用vim编辑文件。注意:引用[2]中提到,在很多Linux发行版中,`vi`是`vim`的软链接,所以使用`vi`命令实际上可能也是在使用`vim`。现在,我们按照用户的要求,用中文清晰地回答。</think>### 如何在终端中使用 Vim 编辑文件 #### **1. 打开/新建文件** 在终端执行以下命令: ```bash vim 文件名 # 打开已有文件(不存在则新建) ``` 示例: ```bash vim demo.txt # 打开 demo.txt(若不存在会自动创建) ``` #### **2. Vim 的三种模式** | 模式 | 进入方式 | 功能 | |-------------|------------------------------|--------------------------| | **命令模式** | 启动 Vim 默认进入 | 执行复制/删除/搜索等操作 | | **输入模式** | 命令模式下按 `i`(插入) `a`(追加) `o`(新行) | 编辑文本内容 | | **末行模式** | 命令模式下按 `:` | 保存/退出/搜索等高级操作 | #### **3. 基础编辑流程** 1. **启动 Vim**:`vim demo.txt` 2. **进入输入模式**:按 `i` 键(底部显示 `-- INSERT --`) 3. **编辑内容**:正常输入文本 4. **返回命令模式**:按 `Esc` 键 5. **保存并退出**: - 按 `:` 进入末行模式 - 输入 `wq` 回车(保存退出)或 `q!`(强制不保存退出) #### **4. 高频操作指令** | 操作 | 命令 | 模式 | |--------------------|-------------------|--------------| | 保存文件 | `:w` | 末行模式 | | 退出 Vim | `:q` | 末行模式 | | 删除当前行 | `dd` | 命令模式 | | 撤销操作 | `u` | 命令模式 | | 搜索关键词 | `/关键词` + 回车 | 命令模式 | | 跳转到第 N 行 | `:N`(如 `:10`) | 末行模式 | | 显示行号 | `:set nu` | 末行模式 | #### **5. 高级技巧** - **打开文件定位到指定行**: ```bash vim demo.txt +20 # 直接跳转到第 20 行 ``` - **分屏编辑**: - 垂直分屏:`:vsplit 文件名` - 水平分屏:`:split 文件名` - **配置个性化**: 编辑 `~/.vimrc` 文件(如设置缩进、主题等)[^4] > 提示:大多数 Linux 系统中 `vi` 是 `vim` 的软链接,实际执行的是 Vim[^2]。若遇到操作卡住,连续按两次 `Esc` 可返回命令模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值