在我用来初始化一些 TeX 相关设置的函数内部,我定义了以下映射:
vmap <buffer> ucm :s/^\% //<CR>:nohlsearch<CR>
Run Code Online (Sandbox Code Playgroud)
我希望它能让我轻松地取消注释视觉上选择的行。类似的:
vmap <buffer> cm :s/^/\% /<CR>:nohlsearch<CR>
Run Code Online (Sandbox Code Playgroud)
在评论方面做得非常好。其他语言的类似映射(使用 # 而不是 %)也可以正常工作。最后那些看起来像这样:
vmap <buffer> cm :s/^/# /<CR>:nohlsearch<CR>
vmap <buffer> ucm :s/^# //<CR>:nohlsearch<CR>
Run Code Online (Sandbox Code Playgroud)
一系列的V10jcmV10kucm应该使代码保持完整。
那么现在:我做错了什么?
我想映射<Shift> + <Arrow Keys>
以选择文本,就像 sublime text 之类的预期行为一样(想法来自:映射 <Shift>-Arrows to selection characters/lines)。使用设置下面我有,<S-Left>
并且<S-Right>
做的工作,但<S-Up>
并<S-Down>
没有工作。相信Terminal.app需要加个键盘动作什么的吗?
在~/.vimrc
:
nmap <S-Up> v<Up>
nmap <S-Down> v<Down>
nmap <S-Left> v<Left>
nmap <S-Right> v<Right>
Run Code Online (Sandbox Code Playgroud)
我在 vim 中看到了这一点(在插入模式下,然后<C-v> + <S-Up>
让我这个^[OA
,然后<C-v> + <S-Down>
让我这个^[OB
.
在 Terminal.app 首选项(默认设置)中:
我一直无法很好地理解键绑定语法(如果您不知道符号的名称,就很难用谷歌搜索!)。
在 DrRacket 中,我看到诸如“c:g”或“esc;g”之类的绑定……我尝试敲击这些键但无济于事。我试过同时打它们。似乎没有任何效果。
他们的意思是什么?而且,一般来说,人们如何理解这种语法?
我在这里有这个代码来创建一个键绑定:
KeyStroke k = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
getInputMap(WHEN_IN_FOCUSED_WINDOW).put(k, k.toString());
getActionMap().put(k.toString(), new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
//put action here
}
});
Run Code Online (Sandbox Code Playgroud)
问题是我的程序中有8个.其中每个都创建一个单独的类文件来保存抽象类.如果可能的话,我如何重写这个来限制创建的类的数量.(我已经搜索过这个,但是减少抽象类没有提供任何有用的东西)
我正在使用mhartl的GitHub教程来为Ruby开发设置Sublime Text.在为SublimeERB编写键绑定时出现以下错误:
错误:尝试解析文件时出错:〜/ Library/Application Support/Sublime Text 2/Packages/Default/Default(OSX)中的意外尾随字符.sublime-keymap:625:3
我该如何解决这个问题?
我有这个程序,我一直在写,但由于某种原因,该on_closing
功能正在接受一个论点
码:
from tkinter import *
from time import sleep
def run():
global root, target
target = open("userdata.exe", 'a')
root = Tk()
root.attributes("-fullscreen", True)
root.attributes('-alpha', 0.01)
root.attributes('-topmost', True)
def key(event):
target.write(repr(event.char)+" :")
frame = Frame(root, width=root.winfo_screenwidth(), height=root.winfo_screenwidth())
frame.bind("<Key>", key)
frame.bind("<1>", on_closing)
frame.pack()
root.protocol("WM_DELETE_WINDOW", on_closing)
root.mainloop()
def on_closing():
root.destroy()
sleep(10)
target.close()
run()
run()
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种情况?
我想创建一个通过按下带有命令 ( b = Button(command = a)
)的按钮触发的函数,该按钮也能够接受来自 bind 命令的调用。问题是 bind 命令发送一个变量(事件)而 command 不发送。我遇到的另一个问题是我无法弄清楚如何将功能链接到计算机上的物理按键
我试图b.bind('a',func)
链接物理键并检查与输入键的绑定
from tkinter import *
def func():
print("meow")
main = Tk()
bRoll = Button(text = "Hello", command = func)
bRoll.bind('r',func)
bRoll.bind('<Enter>',func)
bRoll.pack()
main.mainloop()
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,因为它什么也没做,我尝试绑定到Enter键 ( <Enter>
) 以查看会发生什么,它打印了一个错误,因为它想向其发送事件func
但它无法接受它。
为什么VIM将默认行导航(jk)设置为导航文件行而不是屏幕行.有什么用例需要这种行为吗?