ST2和Emacs:删除整个/整个单词+;右边的空白
来自文字处理背景,我已经习惯于看到ST2和Emacs:删除整个/整个单词+;右边的空白,emacs,editor,keyboard-shortcuts,sublimetext2,sublimetext,Emacs,Editor,Keyboard Shortcuts,Sublimetext2,Sublimetext,来自文字处理背景,我已经习惯于看到delete word的行为如下:删除整个单词加上单词后面的所有空格。我假设插件delete_word.py(在/Packages/Default中)为有编程背景的人保留空白 为了接近我习惯看到的行为,有必要将光标放在前一个单词的末尾,以删除下一个单词(这样,完成后两个单词之间只剩下一个空格) 是否还有另外一个内置的键盘快捷键可以实现我最习惯的行为?解决方案1--升华文本2: 无论什么原因,super+daka⌘+dakafind_在_expand下donot使
delete word
的行为如下:删除整个单词加上单词后面的所有空格。我假设插件delete_word.py
(在/Packages/Default
中)为有编程背景的人保留空白
为了接近我习惯看到的行为,有必要将光标放在前一个单词的末尾,以删除下一个单词(这样,完成后两个单词之间只剩下一个空格)
是否还有另外一个内置的键盘快捷键可以实现我最习惯的行为?解决方案1--升华文本2:
无论什么原因,super+d
aka⌘+d
akafind_在_expand下
donot使用宏<代码>在_expand下查找似乎不是插件。因此,下面是一个示例选择整个word插件,它可以处理宏:
import sublime, sublime_plugin
class Expand(sublime_plugin.TextCommand):
def run(self, edit):
regions = []
for s in self.view.sel():
word = self.view.word(sublime.Region(s.begin(), s.end()))
if word.end() == s.end():
# to deal with an end of line issue
word = self.view.word(sublime.Region(s.end(), s.end() + 1))
regions.append(word)
for r in regions:
self.view.sel().add(r)
接下来,安装由dacap
编写的收缩空白插件:
然后,创建这个宏。将空白缩小两(2)倍处理有制表符或制表符+空格的情况
[
{
"args": null,
"command": "expand"
},
{
"args": null,
"command": "right_delete"
},
{
"args": null,
"command": "shrink_whitespaces"
},
{
"args": null,
"command": "shrink_whitespaces"
},
{
"args":
{
"characters": " "
},
"command": "insert"
}
]
解决方案#2——崇高文本2: 安装: 创建宏并将其绑定到您喜爱的键盘快捷键:
[
{
"args": null,
"command": "expand_selection_to_whitespace"
},
{
"args":
{
"by": "wordends",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args":
{
"by": "words",
"extend": true,
"forward": false
},
"command": "move"
},
{
"args": null,
"command": "left_delete"
}
]
解决方案#1——Emacs——定义两个函数,并创建一个宏:
(fset 'lawlist-kill-word [?\C-= kp-delete ?\C-+])
(global-set-key (kbd "C-=") 'lawlist-mark-word)
(global-set-key (kbd "C-+") 'delete-horizontal-space-forward)
(defun lawlist-mark-word ()
"Mark the entire symbol around or in front of point."
(interactive)
(let ((symbol-regexp "\\s_\\|\\sw"))
(when (or (looking-at symbol-regexp)
(looking-back symbol-regexp))
(skip-syntax-forward "_w")
(set-mark (point))
(while (looking-back symbol-regexp)
(backward-char)))))
(defun delete-horizontal-space-forward () ; adapted from `delete-horizontal-space'
"*Delete all spaces and tabs after point."
(interactive "*")
(delete-region (point) (progn (skip-chars-forward " \t") (point))))
解决方案#1——崇高文本2:
无论什么原因,super+d
aka⌘+d
akafind_在_expand下
donot使用宏<代码>在_expand下查找似乎不是插件。因此,下面是一个示例选择整个word插件,它可以处理宏:
import sublime, sublime_plugin
class Expand(sublime_plugin.TextCommand):
def run(self, edit):
regions = []
for s in self.view.sel():
word = self.view.word(sublime.Region(s.begin(), s.end()))
if word.end() == s.end():
# to deal with an end of line issue
word = self.view.word(sublime.Region(s.end(), s.end() + 1))
regions.append(word)
for r in regions:
self.view.sel().add(r)
接下来,安装由dacap
编写的收缩空白插件:
然后,创建这个宏。将空白缩小两(2)倍处理有制表符或制表符+空格的情况
[
{
"args": null,
"command": "expand"
},
{
"args": null,
"command": "right_delete"
},
{
"args": null,
"command": "shrink_whitespaces"
},
{
"args": null,
"command": "shrink_whitespaces"
},
{
"args":
{
"characters": " "
},
"command": "insert"
}
]
解决方案#2——崇高文本2: 安装: 创建宏并将其绑定到您喜爱的键盘快捷键:
[
{
"args": null,
"command": "expand_selection_to_whitespace"
},
{
"args":
{
"by": "wordends",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args":
{
"by": "words",
"extend": true,
"forward": false
},
"command": "move"
},
{
"args": null,
"command": "left_delete"
}
]
解决方案#1——Emacs——定义两个函数,并创建一个宏:
(fset 'lawlist-kill-word [?\C-= kp-delete ?\C-+])
(global-set-key (kbd "C-=") 'lawlist-mark-word)
(global-set-key (kbd "C-+") 'delete-horizontal-space-forward)
(defun lawlist-mark-word ()
"Mark the entire symbol around or in front of point."
(interactive)
(let ((symbol-regexp "\\s_\\|\\sw"))
(when (or (looking-at symbol-regexp)
(looking-back symbol-regexp))
(skip-syntax-forward "_w")
(set-mark (point))
(while (looking-back symbol-regexp)
(backward-char)))))
(defun delete-horizontal-space-forward () ; adapted from `delete-horizontal-space'
"*Delete all spaces and tabs after point."
(interactive "*")
(delete-region (point) (progn (skip-chars-forward " \t") (point))))
什么是
delete\u word.py
?delete\u word.py
是文件夹/Packages/Default
中的python脚本插件。它链接到OSX/Mac键映射,该键映射为“ctrl+backspace”
或“ctrl+delete”
,具体取决于用户希望向前还是向后删除。我将编辑这个问题以添加word插件。使用代码编辑器而不是文字处理程序,我发现文字处理程序删除的不仅仅是ctrl+backspace的单词,即使是额外的句号或撇号,也很烦人。我不知道为什么这很烦人,但我只是觉得很烦人。这就是我想象的——那些花了多年时间编写代码的人期望有一种特殊的行为;而死硬的文字处理器则期望完全不同的东西。我现在使用SublimateText2处理所有事情(包括使用LaTeX进行文字处理),但我不确定我是否会习惯于打破那些年来一直担任秘书的旧习惯。什么是delete\u word.py
?delete\u word.py
是文件夹/Packages/Default
中的python脚本插件。它链接到OSX/Mac键映射,该键映射为“ctrl+backspace”
或“ctrl+delete”
,具体取决于用户希望向前还是向后删除。我将编辑这个问题以添加word插件。使用代码编辑器而不是文字处理程序,我发现文字处理程序删除的不仅仅是ctrl+backspace的单词,即使是额外的句号或撇号,也很烦人。我不知道为什么这很烦人,但我只是觉得很烦人。这就是我想象的——那些花了多年时间编写代码的人期望有一种特殊的行为;而死硬的文字处理器则期望完全不同的东西。我现在使用SublimiteText2处理所有事情(包括使用乳胶进行文字处理),但我不确定我是否会习惯于打破多年来一直担任秘书的旧习惯。delete-horizontal-space-forward()谢谢,这正是我需要的,不确定默认情况下为什么没有删除水平空间等效项。delete-horizontal-space-forward()谢谢,这正是我需要的,不确定默认情况下为什么没有删除水平空间等效项。