Questions tagged «cursor-movement»

将光标移到缓冲区中的另一个位置。

3
即使我开始搜索“”,我怎么也可以继续前进?要么 '#'?
Vim有(至少)两组在相反方向上搜索的命令。键入/然后使用模式将在文档中向前搜索该模式;键入?,然后模式将向后搜索。*和#命令之间存在相同的关系。 我不喜欢这些命令还设置了nand N命令的搜索方向。使用后/,n向前浏览文档并向N后浏览;使用后?,n向后N前进。(换句话说,n始终与原始搜索方向相同,而N始终与另一个方向相同。) 我怎样才能获得n前进通过文档,N向后走,不管我开始寻找哪个方向的?

5
将视觉选择复制到键盘后,返回到原始位置
当我突然决定需要复制该段落时,光标位于段落的中间: 因此,我键入vip以直观地选择该段落: 现在,我点击cmd+C复制到剪贴板(这可能在您的系统上有所不同,但不应与帖子的中心问题相关),这使我的光标停留在该段的开头: 而不是理想的位置,那是我刚开始时的位置。 请注意,当用非视觉方式取消选择时,会出现相同的问题yip。 在执行这样的选择/复制操作之后,我希望默认行为是“返回到原始光标位置”。是否有配置使之成为可能?

4
如何用拉动的文本替换内部文本
我经常遇到的一种编辑模式如下:我想拉引号或方括号内的一段文本,并替换另一对引号/方括号内的一段文本。 例如,如果我想复制类名foo bar并将其粘贴到其他地方: <span class="foo bar"> <div class="this-should-be-replaced-with-foo-and-bar"> 我所知道的是:如果我在span的类内移动,我通常会yi"在引号内插入文本。 现在,我将其保存在寄存器中,因此应该可以用它替换div的类内容。但是我找不到方便的方法。 如果我使用ciw它,最终会覆盖内容以更改内容,因此我会丢失被选中的文本。 我能想到的最好的办法是移至div类的第一引号p,然后单击,然后删除至下一个引号dt"。 通常,我通常会弄乱自己的位置,然后将其粘贴到合并两个字符串的引号中的某个位置,这会使事情变得混乱。 我希望可以通过某种方式进行“请用需要替换的内容替换内部文本”组合,以使此操作更容易。

2
在不带花括号的语言中使用%
在C和类似C的语言中,我可以%用来跳到光标所在的相应花括号。这是一个众所周知的“把戏”。 但是以Ruby为例: def fun [1, 2].each do |n| end end 这不起作用,因为ruby不使用中的字符matchpairs((:),{:},[:],<:>默认设置为。 我尝试设置它,但是不起作用: :set matchpairs=def:end E474: Invalid argument: matchpairs=def:end 我可以将其与Ruby之类的语言一起使用吗?请注意,这不是特定于Ruby的问题,其他示例可能是shell脚本(if/ fi)或Lua(function/ end),等等。

5
如何将光标移动到当前行的中心?
有什么方法可以将光标移动到当前行的中间吗?(文本行的中间-不在屏幕宽度的中间) 我想知道是否有类似于M将光标移动到屏幕中间的快捷方式。 编辑:在括号内添加了说明



3
同时编辑不同的单词,就像在Sublime Text中用相同的一行选择多个选项
是否可以同时编辑同一行中的多个单词? 例如,假设我有这个: Spam and Eggs is all you need for a healthy breakfast 我想将行更改为: organic_Spam and organic_Eggs is all you need for a healthy breakfast 我想突出显示“垃圾邮件”和“鸡蛋”,并同时在“垃圾邮件”和“鸡蛋”之前加上“ organic_”。有点像使用可视块在不同的行上同时写,但是这里在同一行上写东西。我看到一位同事使用Sublime Text进行此操作,并尝试使用Google谷歌搜索,但无济于事。

2
执行普通命令后如何恢复光标位置?
我正在尝试编写一个函数,用美元符号($)替换当前行第六列中的字符,但是我希望光标保持在调用该函数之前的位置。 因此,我尝试存储当前列,执行更改,然后返回以下函数: function! DollarSplit() let col_number=col(".") "stores the current column number of the cursor normal! 6|r$ " replaces the 6th caracter in line with a $ execute col_number."|" endfunction 我可能对execute命令有一些误解...或者我应该创建一个包含要执行的命令的字符串?

3
动作映射
我试图了解如何在映射内的后续运动中使用运算符。例如: nmap /c c{here we pending for a motion}/<C-r>"<CR> 该地图应执行以下操作: 激活c操作员并收听下一个动作; 例如,我可以在此处键入t,以在下一个逗号之前更改所有内容; 进入插入模式,删除光标和逗号之间的所有内容; 删除的文本会自动搜索为图案 简而言之,删除运动文本后,我将处于插入模式,突出显示了已删除的文本。如果有人帮助我解决这个问题,我将不胜感激。 更新 答案几乎是我想要的。但!当我按时/cw,键入一些东西而不是单词,然后按<Esc>。我希望以后再做同样的事情。但是,在n(转到下一个出现)和.(重复上一个命令)之后,它只是在最后键入的文本之前加上了替换而不是替换它。映射的主要目标是将其与n/N和.重复使用。我错过了什么吗?

2
在正常模式下,j,CTRL-J,<NL>和CTRL-N有什么区别?
我在网络上的某个地方看到有人在使用Ctrl-J,由于不知道该映射,我在相关文档中进行了查找,发现以下内容: j or &lt;Down&gt; or CTRL-J or &lt;NL&gt; or CTRL-N [count] lines downward linewise. 这使我想到几个问题: 什么是&lt;NL&gt;:我认为它等同于,&lt;CR&gt;因为Enter默认情况下按会在正常模式下下降一行,但为什么&lt;NL&gt;在这里而不是&lt;CR&gt;呢? 这些映射之间有什么区别:所有这5个选项是否都以相同的方式向下一行?根据我的测试,我会回答“是”,但这将导致下一个问题。 为什么会有5个映射做完全相同的事情:我能理解这一点j,&lt;down&gt;并且保留给不习惯vim映射的用户使用,但是为什么存在其他映射呢? 什么时候比另一个使用更有趣:这是上一个问题的延续:如果有太多可能性,我猜想它们有不同的优势或者更适合在特定的用例中使用。这些用例是什么? 我觉得这些命令的冗余就更奇怪了,当我看到:h k:只有3个办法上去:k,&lt;UP&gt;和ctrl-p。因此,奖金问题是:为什么会有5种下降的方式而只有3种上升的方式?

1
Vim导航的手动放置
我是Vim的新用户,我想问这个基本问题,以确保我以正确的方式开始学习Vim,并且不会养成不良习惯。 使用Vim时,如何定位右手?我发现从手指上的jkl;按键开始比较自然,但是随后发现h导航时有时会丢失按键。相反,如果我将手指放在上面,hjkl那么我会发现自己的单词含糊不清,因为这不是我受过训练的将手放在键盘上的位置,而且我发现jk用中指和无名指切换键会很尴尬。


1
为什么光标移到<Esc>之后的行的开头?
我注意到在插入模式下沿.txt文件中的一行进行编辑时,光标将在使用键序列进行写操作后移至该行的开头: &lt;esc&gt;:w 我想更改此行为,以使光标在:write之后将保持在原位。这可能吗?我不需要光标保持在插入模式,我只希望它在写入后保持其最后位置。 我在Windows上使用gVim 7.4。我的.vimrc非常基本,我不相信任何设置都会干扰此行为。我还从我的.vimrc中删除了mswin.vim和example.vim的采购(与正式的vim.org Windows安装程序捆绑在一起)。 阅读下面的评论后,我再次查看了该问题,并意识到在写入完全由尾部空白组成的行之后,光标仅滑至最左侧。换句话说,当该行是一个悬挂缩进时,除了空格之外,没有其他任何字符时,光标只会滑动到esc-:w的最左侧。.vimrc正在使用以下设置处理缩进行为: set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set autoindent 因此,在缩进线下方创建的新行将包含4个尾随空白,作为该行的前4个空格(我要保留)。按下“ esc”键时,光标将滑动到缓冲区的最左端。 在尾随空白(如缩进)组成的一行上,单击“ esc”以返回正常模式时,是否可以保留光标位置?

4
Vim HardMode细颗粒运动
我最近发现了Vim硬模式,因此决定尝试使用它。但是,我遇到了细颗粒运动的一些问题。 例如,假设我真的只想向上或向下移动一行。由于j和k被禁用,因此我不确定有什么更好的替代方法。 我想向右或向左移动一个或两个字符时遇到了相同的问题。有谁知道如何取代这些类型的机芯? 这是我正在使用的插件:https : //github.com/wikitopian/hardmode。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.