从notepad++转到sublime,感觉sublime的列编辑没有notepad++好用
- 一个是先入为主的问题,notepad++进行列编辑是alt+左键
- notepad++进行列选择时,选择的行没有编辑也是可以选中的,sublime只能选中编辑范围
- 进行列粘贴时,notepad++可以不用关注选择的列数和要粘贴的列数是否对应 ,但是sublime必须要对应 上,要不然粘贴就有问题,(需要处理的是两三行还好,如果处理超过5行以上,感觉识别成本就高很多)
先解决第一个问题:
打开sublime,选择首选项->浏览插件目录
打开以下页面,从Default里面复制 Default (Windows).sublime-mousemap 到User目录里面
将以下内容填入到 Default (Windows).sublime-mousemap 就可以使用alt+鼠标左键选择列编辑
[
// 将shift + 右键列选择改为alt+左键列选择
// Alt + Shift + Mouse 1 column select button1 是左键,2是右键
{
"button": "button1", "modifiers": ["alt"],
"press_command": "drag_select",
"press_args": {"by": "columns"}
},
]
第二个问题解决不了。
第三个问题:
使用插件来处理,代码如下,代码怎么引用 大家可以百度下:
# 列模式下粘贴 ColumnPaste
class ColumnPasteCommand(sublime_plugin.TextCommand):
def run(self, edit):
# 只选择一行时不做处理(连续选择也会算做一行)
# print("------ ",len(self.view.sel()))
if len(self.view.sel()) == 1:
return
clip = sublime.get_clipboard()
if(clip == ""):
return
arr_str = clip.split("\n")
# print("剪切板:",arr_str)
index = 0
# 将剪切板的数据以换行符为分隔符按顺序放到选择的光标处
for pos in self.view.sel():
# print ("坐标:",pos)
self.view.insert(edit, pos.begin(), arr_str[index])
index += 1
if index == len(arr_str):
return