21 navigation vim emacs cursor-position
我想知道emacs是否内置了这些光标移动命令,或者我是否必须编写它们或在某处找到一个片段.我发现它们非常漂亮,并且经常在vim中使用它们.到目前为止,我还没有在emacs的文档中找到它们.
在vim中,它们看起来像这样:shift -h - >将光标移动到屏幕顶部shift-m - >将光标移动到屏幕中间shift -l - >将光标移动到屏幕底部
只是为了澄清,我不打算将光标移动到文档的顶部/底部,只是移动到文档当前可见部分的顶部/底部,即当前正在屏幕上显示的部分.
到目前为止我找到了其中一个.alt-r似乎相当于vim的shift-m.它将光标移动到中间一行的第一列.
Dav*_*ebb 29
使用:
Alt+0 Alt+r - 窗口顶部Alt+- Alt+r - 窗口底部严格来说,这些应该写M-0 M-r在屏幕的顶部和屏幕M-- M-r的底部.其中M表示Meta通常映射到的键Alt.
我按如下方式计算了这些击键:
M-r运行命令move-to-window-line.我发现了这个C-h k M-r,即.Ctrl+h,k,Alt+r. 键序列C-h k意味着告诉我下一个键序列的作用. 它告诉我命令名称,还可以将数字参数传递给命令以选择要转到的行.如果你没有通过它,你可以将点移动到你看到的窗口中间.
通过在按住Meta的同时键入数字,可以将数字参数传递给命令.减号本身就是-1.现在,要移动到屏幕顶部,我们要传递第0行,并在屏幕底部显示第-1行.这给了我们上面的关键序列.
如果你想绑定move-to-window-line一个不同的键看看Joe对这个问题的回答.
您希望使用的功能是move-to-window-line,其定义是:
move-to-window-line is an interactive built-in function in `C source
code'.
It is bound to M-r.
(move-to-window-line arg)
Position point relative to window.
With no argument, position point at center of window.
An argument specifies vertical position within the window;
zero means top of window, negative means relative to bottom of window.
Run Code Online (Sandbox Code Playgroud)
您可以使用a调用它0来转到页面顶部,然后-1转到页面底部.这些可以绑定到具有匿名函数或命名函数的键.给出了两者的例子.
匿名函数
(global-set-key [(f4)] (function
(lambda ()
"Go to top of page."
(interactive)
(move-to-window-line 0))))
(global-set-key [(f4)] (function
(lambda ()
"Go to bottom of page."
(interactive)
(move-to-window-line -1))))
Run Code Online (Sandbox Code Playgroud)
命名功能
(defun my-top-of-page ()
"Go to top of page."
(interactive)
(move-to-window-line 0))
(defun my-bottom-of-page ()
"Go to bottom of page."
(interactive)
(move-to-window-line -1))
(global-set-key [(f4)] 'my-top-of-page)
(global-set-key [(shift f4)] 'my-bottom-of-page)
Run Code Online (Sandbox Code Playgroud)