我正在尝试在VSCode中创建一个非常简单的代码段,并且正在使用vim扩展。 插入代码段后,我成功进入insertMode。在那之后我什么都没写。
这是我的python.json
文件:
"Print": {
"prefix": "print",
"body": [
"print($1)$0"
],
"description": "Print statement"
}
这是我的settings.json:
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["<leader>", "i", "p"],
"commands": [
{
"command": "editor.action.insertSnippet",
"args": {
"langId": "python",
"name": "Print"
}
},
{
"command": // COMMAND to enter insert mode here
},
{
"command": // COMMAND to type something (eg: `type` but I'm not sure I can use it with vim)
},
{
"command": // COMMAND to quit insert mode here
}
],
}
],
我知道我可以为代码段编写参数,但这更多是为了学习如何使用vim扩展,因为我想创建另一个使用vim的扩展。
这是我第一个问题的结尾,但是我有第二个问题:
使用此键绑定时,我希望代码缩进。 例如(“ |”代表光标位置):
def my_function():
a = "super string"
|
应用快捷方式
这就是我想要的:
def my_function():
a = "super string"
print(|)
这就是我得到的:
def my_function():
a = "super string"
print(|)
答案 0 :(得分:0)
第一季度:
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["<leader>", "i", "p"],
"commands": [
{
"command": "editor.action.insertSnippet",
"args": {
"langId": "python",
"name": "Print"
}
},
],
"after": ["i","t","y","p","e","<ESC>"]
}
],
还有一个命令extension.vim_insert
可能会有用。
输入像这样的"t","y","p","e"
这样的单词可能是不好的做法,只需改成custom vscode snippets。
第二季度:
正确的方法是将光标保持在line 2
上并按下o
键,自动缩进到您想要的位置。很少会把光标放在line 3
的第一个字符上。
可能光标所在的地方。
def my_function():
|a = "|super |string"|
在o
之后。
def my_function():
a = "super string"
|