光标移动

本文详细介绍了Vim编辑器中光标的移动技巧,包括移动到行首、行尾、首行和末行,以及翻页操作。此外,还涵盖了复制、剪切/删除操作,如复制整行、可视模式下的复制和删除,以及撤销和恢复功能。同时,文章提及了bash中的系统变量,如 $#、$*、$@、$? 和 $0,以及位置参数变量的使用。

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

1、光标移动
①光标移动到行首按键:shift + 6 或 ^(T字母上面的6,不要按小键盘的6)
②光标移动到行尾按键:shift + 4 或 $(R字母的左上角的4,不是小键盘的4)
③光标移动到首行行首按键:gg
④光标移动到末行行首按键:G [Capslk 再加 G键] / [Shift + G键]
⑤翻屏向上翻屏:按键ctrl + b (before)或 PgUp
向下翻屏:按键ctrl + f(after)或 PgDn
向上翻半屏:按键ctrl + u (up)
向下翻半屏:按键ctrl + d (down)
⑥向上/下/左/右移动指定的行/列数字↑/↓/←/→
⑦快速定位到指定行数字G2、复制操作
①复制光标所在行按键:yy粘贴:在想要粘贴的地方按下p键【将粘贴在光标所在行的下一行】,如果想粘贴在光标所在行之前,则使用P键
②以光标所在行为准(包含当前行),向下复制指定的行数按键:数字yy
③可视化模式下复制按键:ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑↓←→方向键来选中需要复制的区块,按下y键进行复制(不要按下yy),最后按下p键粘贴 退出可视模式按下Esc。
3、剪切/删除
①剪切/删除光标所在行按键:dd(删除之后下一行上移)注意:dd严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。
②剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行按键:数字dd (删除之后下一行上移)
③剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移按键:D(删除之后当前行会变成空白行)
④可视化删除按键:ctrl + v(可视块)或V(可视行)或v(可视),上下左右移动,按下D表示删除选中行,d表示删选中块 退出可视模式按下Esc。
4、撤销/恢复撤销:输入“:u”(不属于命令模式) 或者 u (undo)恢复:ctrl + r 恢复(取消)之前的撤销操作

系统变量(内置bash中变量) : shell本身已经固定好了它的名字和作用.
$#:脚本后面接的参数的个数
$*:脚本后面所有参数,参数当成一个整体输

### Handsontable 中光标移动到相邻单元格的实现方式与配置选项 Handsontable 是一个功能强大的 JavaScript 数据网格库,支持可编辑表格、数据绑定和丰富的交互功能。以下是如何在 Handsontable 中实现光标移动到相邻单元格的配置选项和代码示例。 #### 1. 使用 `keys` 配置选项 Handsontable 提供了内置的键盘导航功能,用户可以通过方向键(ArrowUp、ArrowDown、ArrowLeft、ArrowRight)在单元格之间移动光标。此功能默认启用,但可以通过 `keys` 配置选项进自定义。 ```javascript var hot = new Handsontable(container, { data: getData(), // 假设有一个获取数据的函数 keys: true, // 启用键盘导航 enterMoves: { // 自定义 Enter 键的为 row: 1, // 移动到下一 col: 0 // 列不变 } }); ``` 上述代码中,`keys: true` 启用了键盘导航功能[^4]。`enterMoves` 配置项用于定义按下 Enter 键时光标移动方向。 #### 2. 自定义光标移动逻辑 如果需要更复杂的光标移动逻辑,可以监听 `afterKeyDown` 事件,并在其中实现自定义为。 ```javascript hot.addHook('afterKeyDown', function(event) { if (event.key === 'ArrowUp') { var selected = this.getSelected(); if (selected) { var [row, col] = selected[0]; // 获取当前选中的单元格 if (row > 0) { this.selectCell(row - 1, col); // 移动到上一 } } } else if (event.key === 'ArrowDown') { var selected = this.getSelected(); if (selected) { var [row, col] = selected[0]; if (row < this.countRows() - 1) { this.selectCell(row + 1, col); // 移动到下一 } } } }); ``` 上述代码通过 `afterKeyDown` 钩子监听键盘事件,并根据按键类型调整光标位置[^5]。 #### 3. 配置选项总结 以下是 Handsontable 中与光标移动相关的常见配置选项: - `keys`: 启用或禁用键盘导航。 - `enterBeginsEditing`: 定义按下 Enter 键时是否进入编辑模式。 - `tabMoves`: 定义按下 Tab 键时光标移动方向。 - `arrowKeysCycle`: 定义方向键是否循环移动(例如从最后一跳转到第一)。 ```javascript var hot = new Handsontable(container, { data: getData(), keys: true, enterBeginsEditing: false, // 按下 Enter 键时不进入编辑模式 tabMoves: { row: 0, col: 1 }, // 按下 Tab 键时向右移动一列 arrowKeysCycle: true // 方向键循环移动 }); ``` 以上配置确保了 Handsontable 的光标移动为符合预期[^6]。 #### 4. 注意事项 - 如果 Handsontable 的容器被嵌套在其他框架(如 React 或 Vue)中,可能需要额外处理事件冒泡问题。 - 在某些情况下,浏览器的默认为可能会干扰 Handsontable 的键盘导航功能,建议使用 `event.preventDefault()` 禁止默认为[^7]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值