Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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中做什么_Emacs - Fatal编程技术网

下一个逻辑行在emacs中做什么

下一个逻辑行在emacs中做什么,emacs,Emacs,我正在为emacs中的移动定义新的键绑定。我想把M-n绑定到下一行,但我也找到了下一个逻辑行,它似乎做了同样的事情 我知道下一行向下移动一行。 下一个逻辑行做什么 您能举一个例子说明这两个命令在哪些方面可以做不同的事情吗?来自Emacs帮助(C-h下一个逻辑行)): 下一个逻辑行是中的交互式编译Lisp函数 “简单,el” (下一逻辑行和可选参数TRY-VSCROLL) 将光标垂直向下移动到参数行。这与 “下一行”,除了它总是按逻辑行移动,而不是按 可视线,忽略变量“line move visu

我正在为emacs中的移动定义新的键绑定。我想把M-n绑定到下一行,但我也找到了下一个逻辑行,它似乎做了同样的事情

我知道下一行向下移动一行。 下一个逻辑行做什么

您能举一个例子说明这两个命令在哪些方面可以做不同的事情吗?

来自Emacs帮助(
C-h下一个逻辑行)
):

下一个逻辑行是中的交互式编译Lisp函数 “简单,el”

(下一逻辑行和可选参数TRY-VSCROLL)

将光标垂直向下移动到参数行。这与 “下一行”,除了它总是按逻辑行移动,而不是按 可视线,忽略变量“line move visual”的值

逻辑行是基于“
换行符”
字符分隔的行。或者换句话说,逻辑行基于文本而不是显示。

是next-line()的来源

文档字符串包含以下文本:

如果变量“line move visual”为非nil,则此命令按 显示行。否则,它将通过缓冲线移动,而不占用空间 考虑可变宽度字符或连续行。见M-x 总是按缓冲区行移动的命令的下一个逻辑行

是next-logical-line()的源

下一逻辑行的实现是:

(defun next-logical-line (&optional arg try-vscroll)
  "Move cursor vertically down ARG lines.
  This is identical to `next-line', except that it always moves
  by logical lines instead of visual lines, ignoring the value of
  the variable `line-move-visual'."
    (interactive "^p\np")
      (let ((line-move-visual nil))
          (with-no-warnings
                (next-line arg try-vscroll))))
我们可以看到
next-logical-line
是使用
next-line
实现的,但是
line-move-visual
设置为nil。默认情况下,此变量设置为t:

$ emacs -Q --batch --eval '(message "%s" line-move-visual)' t $emacs-Q--批处理--评估(消息“%s”行移动可视) T