用 VimScript 写这个:"If Lexplore opened a file(anyfile) then close Lexplore"
Write this in VimScript : "If Lexplore opened a file(anyfile) then close Lexplore"
我想:
打开文件后自动关闭 Lexpore 以获得更好的体验,但我不知道 vim 脚本。
这应该不难,我想。
我将不胜感激任何评论!
我现在正在学习 vim 脚本并尝试这样做。
这是我现在的位置:
:autocmd <Lexplore> * :<Lexplore-exit>
或
if <command-mode> == "Lexplore *.*"
excute \close last buffer. (because now I am in new buffer)
我只需要知道如何在脚本中说“运行”/“运行ED”
然后我对任何文件使用正则表达式,我需要说“关闭”。
事实是
我真的很绝望! :))))))))))))
在完全使用 VimScript 之前,还有其他方法可以尝试。在这种情况下,一个简单的映射可能就足够了。
基本上,映射的右侧只是一个宏,您可以自己键入的一系列命令,这使得映射成为发现 Vim 自动化的一种非常好的且易于使用的方法。
假设一个简单的布局,只有一个 window,您如何手动完成您描述的内容?
- 你
:Lexplore
并四处浏览。
- 在 Netrw window 中,您按
<CR>
打开文件。
- 然后你用
<C-w>p
. 回到之前的window(Netrwwindow)
- 您用
<C-w>q
关闭了 window。
上面2-4步很容易转成映射(<key>
是占位符,随便用):
nmap <key> <CR><C-w>p<C-w>q
但是映射随处可用,这可能不是一个好主意。输入文件类型插件的概念:
如果这些目录尚不存在,请创建它们:
~/.vim/after/ftplugin/ (Unix-like systems)
%userprofile%\vimfiles\after\ftplugin\ (Windows)
在上面的目录中创建一个netrw.vim
文件:
~/.vim/after/ftplugin/netrw.vim (Unix-like systems)
%userprofile%\vimfiles\after\ftplugin\netrw.vim (Windows)
将上面的映射放入该文件中:
nmap <buffer> <key> <CR><C-w>p<C-w>q
<buffer>
告诉 Vim 只定义 Netrw
中的映射。
这是最简单的方法,可能适合也可能不适合您。
关于您的评论的几点说明...
- 缓冲区编号是实现细节。它们在您的日常工作中根本无关紧要,因此您不应该过多地考虑它们。缓冲区 名称 更有用,也更容易考虑。
- “侧边栏文件资源管理器”UX 模式是一种熟悉的模式,新手喜欢从他们以前的编辑器转移过来,但它需要与 Vim 本身进行大量斗争才能“工作”。 Netrw 对模式的看法是不同的,是的,它可能需要时间来适应,但它更适合整体体验。提示:放弃
:Lexplore
。 :Explore
、:Sexplore
、:Vexplore
和 :Texplore
更有用。
- 随着您了解更多,您很快就会发现文件浏览器,无论它们遵循什么 UX 模式,一开始都有用。
- Netrw 已有在新标签页打开文件的映射:
:help netrw-t
.
我想: 打开文件后自动关闭 Lexpore 以获得更好的体验,但我不知道 vim 脚本。 这应该不难,我想。 我将不胜感激任何评论!
我现在正在学习 vim 脚本并尝试这样做。 这是我现在的位置:
:autocmd <Lexplore> * :<Lexplore-exit>
或
if <command-mode> == "Lexplore *.*"
excute \close last buffer. (because now I am in new buffer)
我只需要知道如何在脚本中说“运行”/“运行ED” 然后我对任何文件使用正则表达式,我需要说“关闭”。
事实是 我真的很绝望! :))))))))))))
在完全使用 VimScript 之前,还有其他方法可以尝试。在这种情况下,一个简单的映射可能就足够了。
基本上,映射的右侧只是一个宏,您可以自己键入的一系列命令,这使得映射成为发现 Vim 自动化的一种非常好的且易于使用的方法。
假设一个简单的布局,只有一个 window,您如何手动完成您描述的内容?
- 你
:Lexplore
并四处浏览。 - 在 Netrw window 中,您按
<CR>
打开文件。 - 然后你用
<C-w>p
. 回到之前的window(Netrwwindow)
- 您用
<C-w>q
关闭了 window。
上面2-4步很容易转成映射(<key>
是占位符,随便用):
nmap <key> <CR><C-w>p<C-w>q
但是映射随处可用,这可能不是一个好主意。输入文件类型插件的概念:
如果这些目录尚不存在,请创建它们:
~/.vim/after/ftplugin/ (Unix-like systems) %userprofile%\vimfiles\after\ftplugin\ (Windows)
在上面的目录中创建一个
netrw.vim
文件:~/.vim/after/ftplugin/netrw.vim (Unix-like systems) %userprofile%\vimfiles\after\ftplugin\netrw.vim (Windows)
将上面的映射放入该文件中:
nmap <buffer> <key> <CR><C-w>p<C-w>q
<buffer>
告诉 Vim 只定义Netrw
中的映射。
这是最简单的方法,可能适合也可能不适合您。
关于您的评论的几点说明...
- 缓冲区编号是实现细节。它们在您的日常工作中根本无关紧要,因此您不应该过多地考虑它们。缓冲区 名称 更有用,也更容易考虑。
- “侧边栏文件资源管理器”UX 模式是一种熟悉的模式,新手喜欢从他们以前的编辑器转移过来,但它需要与 Vim 本身进行大量斗争才能“工作”。 Netrw 对模式的看法是不同的,是的,它可能需要时间来适应,但它更适合整体体验。提示:放弃
:Lexplore
。:Explore
、:Sexplore
、:Vexplore
和:Texplore
更有用。 - 随着您了解更多,您很快就会发现文件浏览器,无论它们遵循什么 UX 模式,一开始都有用。
- Netrw 已有在新标签页打开文件的映射:
:help netrw-t
.