我经常想要进行多行函数调用并将其减少到一行.例如,转换...
function_call( 'first_arg', 'second')
至
function_call('first_arg', 'second')
emacs是否有一些命令可以帮助解决这个问题.具体来说,是否有一个命令会删除从该点到第一个非空白字符的所有空格?
您可以尝试delete-indentation
,我最喜欢的命令,将多行连接成一行.在您的示例中,将光标放在"second"的行上并点击M-^两次.以下是文档:
M-^运行命令
delete-indentation
,这是一个交互式编译的Lisp函数simple.el
.它必然会M-^.
(delete-indentation &optional arg)
将此行加入到上一行并修复连接时的空白.如果有填充前缀,请从该行的开头删除它.使用参数,将此行连接到以下行.
看看这个fixup-whitespace
功能.它配备了Emacs,in simple.el
.它的文档是:
修复点周围对象之间的空白区域.根据上下文,留一个空格或不留空格.
类似的功能just-one-space
,那
删除点周围的所有空格和制表符,留下一个空格
通常是绑定的M-SPC.
具体来说,是否有一个命令会删除从该点到第一个非空白字符的所有空格?
有一个命令几乎可以做到:
M- \运行命令delete-horizontal-space,它是`simple.el'中交互式编译的Lisp函数.
它必然是M- \.
(delete-horizontal-space&optional backward-only)
删除点周围的所有空格和制表符.如果仅向后是非零,则仅在点之前删除它们.
您始终可以使用Mz删除字符.
例如在你的情况下:
Mz'删除单引号(不幸的是,这也将删除单引号,但这是一个小小的不便).
我使用下面的宏将下一行"拉"到当前行的末尾,压缩空格.
(defun pull-next-line() (interactive) (move-end-of-line 1) (kill-line) (just-one-space))
这正是@ jrockway的相反move-line-up
和delete-indentation
,我觉得更自然.just-one-space
宏中的命令正好是@Mike的M-SPACE
.
我绑定pull-next-line
到M-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')
Alt-space会将一个空格字符串减少为单个空格字符,但不会删除换行符.不过,这应该有所帮助.
要删除从点到第一个非空格(或换行符)的所有内容,请键入非空白字符,Alt-space,退格键(以删除最终的空格字符),然后退格(以删除您添加的字符).
要将多行函数声明转换为单行声明,请使用Alt-space,Backspace和Alt-E(goto-endofline)命令的组合.