当前位置:  开发笔记 > 编程语言 > 正文

Emacs命令删除非空白字符

如何解决《Emacs命令删除非空白字符》经验,为你挑选了6个好方法。

我经常想要进行多行函数调用并将其减少到一行.例如,转换...

function_call(
     'first_arg',
     'second')

function_call('first_arg', 'second')

emacs是否有一些命令可以帮助解决这个问题.具体来说,是否有一个命令会删除从该点到第一个非空白字符的所有空格?



1> Bill White..:

您可以尝试delete-indentation,我最喜欢的命令,将多行连接成一行.在您的示例中,将光标放在"second"的行上并点击M-^两次.以下是文档:

M-^运行命令delete-indentation,这是一个交互式编译的Lisp函数simple.el.

它必然会M-^.

(delete-indentation &optional arg)

将此行加入到上一行并修复连接时的空白.如果有填充前缀,请从该行的开头删除它.使用参数,将此行连接到以下行.


好一个.我想知道在哪里可以找到这样的功能.给了我很多帮助.

2> Brian Clappe..:

看看这个fixup-whitespace功能.它配备了Emacs,in simple.el.它的文档是:

修复点周围对象之间的空白区域.根据上下文,留一个空格或不留空格.

类似的功能just-one-space,那

删除点周围的所有空格和制表符,留下一个空格

通常是绑定的M-SPC.


M-SPACE是"只是一个空间"而不是"修复空白".不过,他们似乎也做了同样的事情.

3> Jouni K. Sep..:

具体来说,是否有一个命令会删除从该点到第一个非空白字符的所有空格?

有一个命令几乎可以做到:

M- \运行命令delete-horizo​​ntal-space,它是`simple.el'中交互式编译的Lisp函数.

它必然是M- \.

(delete-horizo​​ntal-space&optional backward-only)

删除点周围的所有空格和制表符.如果仅向后是非零,则仅在点之前删除它们.



4> Amjith..:

您始终可以使用Mz删除字符.

例如在你的情况下:

Mz'删除单引号(不幸的是,这也将删除单引号,但这是一个小小的不便).



5> Chris Conway..:

我使用下面的宏将下一行"拉"到当前行的末尾,压缩空格.

(defun pull-next-line() 
  (interactive) 
  (move-end-of-line 1) 
  (kill-line)
  (just-one-space))

这正是@ jrockway的相反move-line-updelete-indentation,我觉得更自然.just-one-space宏中的命令正好是@Mike的M-SPACE.

我绑定pull-next-lineM-J(与Vim的比喻J用在我的下面,对"加盟",命令).emacs.

(global-set-key (kbd "M-J") 'pull-next-line)

例.打电话pull-next-line给第一行

function_call(
     'first_arg',
     'second')

产量

function_call( 'first_arg',
     'second')

再次调用它会产生

function_call( 'first_arg', 'second')



6> 小智..:

Alt-space会将一个空格字符串减少为单个空格字符,但不会删除换行符.不过,这应该有所帮助.

要删除从点到第一个非空格(或换行符)的所有内容,请键入非空白字符,Alt-space,退格键(以删除最终的空格字符),然后退格(以删除您添加的字符).

要将多行函数声明转换为单行声明,请使用Alt-space,Backspace和Alt-E(goto-endofline)命令的组合.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有