Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Emacs中从行首到第n个字符_Emacs - Fatal编程技术网

在Emacs中从行首到第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重复(此注释太长) 您评论说您不想使用命令的组合,但是

我最近开始使用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
重复

(此注释太长)

您评论说您不想使用命令的组合,但是。。。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)是可以的,尽管如果不是在行的开头,它就不起作用

如果出于某种原因,这是您需要经常做的事情,那么编写一个函数调用行的开头,然后按您想要的字符数向前移动,这是很简单的。。。当然,这是Emacs,所以函数可能已经存在:)

(这对于注释来说太长了)

您评论说您不想使用命令的组合,但是。。。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)是可以的,尽管如果不是在行的开头,它就不起作用


如果出于某种原因,这是您需要经常做的事情,那么编写一个函数调用行的开头,然后按您想要的字符数向前移动,这是很简单的。。。当然这是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::)你肯定是在开玩笑