vim 的26个字母

如果停电你只能看键盘的时候可以想想这个(不全,自己想的):
q--------------记录宏到寄存器
w--------------光标往后移动一个词到词首 联想:b
e--------------光标往后移动一个词到词尾
r--------------改变一个字母
t--------------插入状态Ctrl-t右缩进 联想Ctrl-d;t(x)移动到x字母左边 f(x)
y--------------复制:yy y3"
u--------------回退
i--------------插入
o--------------换行
p--------------自动提示的时候向上 联想n

a--------------追加看键盘:
s--------------删除一个字母变插入模式
d--------------dd,100dd,d$,d0
f--------------f(x)移动光标到当前行的下一个x处,x任意字母 F(x)往回找
g--------------G,gg
h--------------傻子都会
j--------------傻子都会
k--------------傻子都会
l--------------傻子都会

z--------------ctrl+z 停止操作
x--------------删除一个字母
c--------------剪切 联想d
v--------------选择
b--------------光标往前移动一个词到词首
n--------------自动提示的时候下一个
m--------------标记书签ma,`a,`.到上次编辑过的地方


关于q:

记录宏

在文章的每段或者每行都重复相同的一系列动作。VIM 允许你记录一个宏来完成你的特殊需要。

qregister:记录宏到寄存器 register,这里 register 是任意的你的寄存器的名字。比如 qa,将会记录并且把宏存在寄存器 a 里面。
q:结束宏的记录。
@register:使用存在寄存器 register 的宏。比如 @a,将会使用存在寄存器 a 里面的宏。

vim入门看这个
http://linuxtoy.org/archives/efficient-editing-with-vim.html
<think>好的,我现在需要帮助用户解决在Vim中选中每行第一个字母的问题。首先,我需要回忆一下Vim的基本操作和命令模式下的相关指令。 用户的问题是选中每行第一个字符,这涉及到Vim中的可视模式。Vim的可视模式允许用户选择文本块,分为字符、行和块三种模式。这里用户需要按字符选择每行的第一个字母,所以应该使用字符可视模式(v)。 接下来,如何定位到每行的第一个字符呢?在Vim中,0命令可以将光标移动到行首,而^命令则移动到行首的第一个非空白字符。用户可能需要的是行首的绝对第一个字符,包括可能的空白,所以使用0更合适。 然后,如何应用到所有行呢?这需要用到全局命令:g或者使用宏(macro)。但直接操作的话,可能更高效的是使用块选择(Ctrl+V)进入可视块模式,然后选中每行的第一个字符。 不过,Ctrl+V的可视块模式是按列垂直选择的,如果所有行的第一个字符在同一列,这有效。但如果行首有不同数量的空格,可能不准。所以可能需要结合其他命令。 另一个方法是使用替换命令,但用户需要的是选中,而不是替换。所以正确的步骤应该是: 1. 进入可视块模式(Ctrl+V)。 2. 使用移动命令选择每行的第一个字符。例如,在第一行按0,然后j移动到下一行,重复直到选中所有行。 或者,使用宏录制:在第一行按0进入行首,v选中字符,然后录制宏应用到所有行。 不过,更简单的方式可能是使用可视块模式,然后通过gg到文件开头,Ctrl+V进入块选择,G到文件末尾,这样选中整列的第一个字符。但这样可能选中的是第一列的所有字符,不管每行是否有内容。 或者,更精确的做法是:在普通模式下,按gg跳到第一行,然后Ctrl+V进入块模式,按G到末尾行,然后0移动到每行的第一个字符,这样选中所有行的第一个字符。 但实际操作中,可能需要调整。例如,先按gg到第一行,按0到行首,然后Ctrl+V进入块模式,按G到文件末尾,此时选区是从第一行的第一个字符到最后一行的相同列的位置。这样就能选中每行的第一个字符。 不过,如果某些行的第一个字符位置不同,比如前面有空格,这种方法可能无法准确选中真正的第一个字符。这时候可能需要使用其他方法,比如正则表达式或者行首命令。 总结:使用Ctrl+V进入可视块模式,然后移动到每行行首(0),再扩展选区到所有行,即可选中每行的第一个字符。如果存在行首空格,可能需要先调整光标到实际需要的字符位置。 另外,参考用户提供的引用内容,引用[3]提到了Vim的基本操作,包括启动和光标定位,但没有直接提到选中行首字符的命令。因此,需要依靠Vim的标准命令组合来解决这个问题。 最终的操作步骤应该是: 1. 进入块可视模式:按Ctrl+V。 2. 移动到第一行的第一个字符:按0(如果行首有空格,可能需要按^到第一个非空白字符)。 3. 扩展选区到所有行:按G(Shift+G)到文件末尾,这样会选中从当前行到最后一行的同一列位置。 4. 这样每行的第一个字符就被选中了。 但需要注意,如果某些行的长度不足,可能无法选中。不过在这种情况下,用户的问题可能已经解决,因为大部分行的第一个字符会被选中。 因此,正确的命令组合是Ctrl+V后,0,然后G。这会在可视块模式下选中从当前光标位置到文件末尾的每一行的第一个字符。 另外,用户可能需要的是每行的第一个非空白字符,这时候应该用^而不是0。所以需要区分用户的具体需求。根据问题描述,用户问的是“第一个字母”,即可能是非空白的字符,所以应该使用^。 因此,调整后的步骤: 1. 按Esc进入普通模式。 2. 按gg跳到文件开头。 3. 按Ctrl+V进入块可视模式。 4. 按^移动到第一个非空白字符。 5. 按G扩展到文件末尾,选中所有行的第一个非空白字符。 这样就能选中每行的第一个字母(假设字母前面没有其他非空白字符)。但如果用户确实需要绝对第一个字符,包括空格,则使用0。 因此,回答中需要说明这两种情况,并提供对应的命令:使用0选择行首第一个字符(包括空格),或者^选择第一个非空白字符。</think>在Vim中选中每行第一个字符的操作步骤如下: ### 方法一:绝对行首(含空白字符) 1. 进入**可视块模式**:按`Ctrl+V` 2. 定位到行首:按`0`(数字零) 3. 扩展选区到文件末尾:按`G`(大写G) ```vim Ctrl+V → 0 → G ``` 此时会选中所有行第一个字符(包括空格)[^3] ### 方法二:首个非空白字符 1. 进入**可视块模式**:按`Ctrl+V` 2. 定位到首个非空白字符:按`^`(Shift+6) 3. 扩展选区到文件末尾:按`G` ```vim Ctrl+V → ^ → G ``` 此时会跳过行首空白,选中每行第一个字母/非空白字符[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值