在Emacs中从行首到第n个字符
我最近开始使用emacs来编写程序代码。我想知道是否有一个“命令”可以从行首直接进入第n个字符,,而无需使用任何技巧(如重复n次在Emacs中从行首到第n个字符,emacs,Emacs,我最近开始使用emacs来编写程序代码。我想知道是否有一个“命令”可以从行首直接进入第n个字符,,而无需使用任何技巧(如重复n次C-f)。我简短地阅读了emacs手册,但没有找到任何内容。对于n==12 C-u12C-f 或 对于n==12,C-1C-2C-f C-u12C-f 或 C-1C-2C-f 我简单地浏览了一下emacs手册,但没有找到任何东西 C-hrC-s重复 我简单地浏览了一下emacs手册,但没有找到任何东西 C-hrC-s重复(此注释太长) 您评论说您不想使用命令的组合,但是
C-f
)。我简短地阅读了emacs手册,但没有找到任何内容。对于n==12
C-u12C-f
或
对于n==12,C-1C-2C-f
C-u12C-f
或
C-1C-2C-f
我简单地浏览了一下emacs手册,但没有找到任何东西
C-hrC-s重复
我简单地浏览了一下emacs手册,但没有找到任何东西
C-hrC-s重复
(此注释太长)
您评论说您不想使用命令的组合,但是。。。Emacs的一个特点是通过组合函数很容易“扩展”它。有一些任务你经常重复,想让它自动化?编写一个函数来解决您的问题,并将其绑定到一个键。或者录制宏并重播(如果需要,可以将其绑定到键)
至于第n个字符,我做的方式取决于我想要什么
- 通常,如果我想进入“缩进”,那么我会使用一个方便的函数(我可能是从SO的某个人那里得到的)绑定到C-a,该函数在进入行首或缩进之间循环:
(defun beginning-of-line-or-indentation () "move to beginning of line, or indentation" (interactive) (if (bolp) (back-to-indentation) (beginning-of-line)))
- 现在,如果我想转到一个特定的角色,通常我会使用isearch forward(默认绑定到C-s),然后键入我想要的内容。我一直在用这个,这是一个巨大的时间节省。我看到很多人使用Emacs(或其他东西)并将光标“一路”移动到一个位置的视频,只需做C-s,然后键入一两个字符就可以到达,这总是让我感到困惑。当然,它可以跨多行工作,您可以通过调用isearch backward(默认绑定到C-r)向后搜索
- 否则,通用参数(C-u)是可以的,尽管如果不是在行的开头,它就不起作用
- 通常,如果我想进入“缩进”,那么我会使用一个方便的函数(我可能是从SO的某个人那里得到的)绑定到C-a,该函数在进入行首或缩进之间循环:
(defun beginning-of-line-or-indentation () "move to beginning of line, or indentation" (interactive) (if (bolp) (back-to-indentation) (beginning-of-line)))
- 现在,如果我想转到一个特定的角色,通常我会使用isearch forward(默认绑定到C-s),然后键入我想要的内容。我一直在用这个,这是一个巨大的时间节省。我看到很多人使用Emacs(或其他东西)并将光标“一路”移动到一个位置的视频,只需做C-s,然后键入一两个字符就可以到达,这总是让我感到困惑。当然,它可以跨多行工作,您可以通过调用isearch backward(默认绑定到C-r)向后搜索
- 否则,通用参数(C-u)是可以的,尽管如果不是在行的开头,它就不起作用
如果出于某种原因,这是您需要经常做的事情,那么编写一个函数调用行的开头,然后按您想要的字符数向前移动,这是很简单的。。。当然这是Emacs,所以函数可能已经存在:)例如,要转到特定行,可以使用alt-g。我认为使用命令的组合是一个“把戏”。仍然不确定你所说的“把戏”
M-gg
对于Emacs按键组合来说是非常普通的。我没有以消极的方式使用“把戏”,我可以说:。。。不使用其他命令的组合。我想你的意思是你必须按两个按键?M-g然后是g?这不是其他命令的组合,请将其视为一条通向一个命令的路径。好的,我对Emacs有了更好的理解。感谢您的帮助。例如,要转到特定的行,您可以使用alt-g。我认为使用命令的组合是一个“把戏”。仍然不确定你所说的“把戏”M-gg
对于Emacs按键组合来说是非常普通的。我没有以消极的方式使用“把戏”,我可以说:。。。不使用其他命令的组合。我想你的意思是你必须按两个按键?M-g然后是g?这不是其他命令的组合,请将其视为一条通向一个命令的路径。好的,我对Emacs有了更好的理解。谢谢你的帮助谢谢,这比我以前用的要好多了你一定是在开玩笑Wooble先生。。。如果你想访问字符12345678,那可能有很多C-f,你不觉得吗?C-U12C-f
不是重复C-f
12次,而是将参数12传递给映射到C-f
的函数forward char
。细微的区别,但由于这个答案已被接受,请求者似乎理解了区别。@我以前使用的事件:C-f C-x z z我认为它是一个包含2个参数的函数,一个整数n和一个要应用n次的“命令”。谢谢,这比我以前用的要好。C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
?@Wooble::)你肯定是在开玩笑