如何根据文件类型,选择程序打开文件
-
- 帖子: 403
- 注册时间: 2007-10-27 1:04
如何根据文件类型,选择程序打开文件
应用程序,注册了mime到gnome下面;这样nautilus就可以使用特定的程序,打开特定mime类型的文件。
用vim模拟这个的话应该怎么操作?
比如,在windows下面,使用RunDll32.exe shell32.dll,ShellExec_RunDLL {文件名},即可用默认的打开方式打开各种文件。
ubuntu下面,应该怎么操作?
能否利用系统已经注册好了的mime类型?还是得自己建立一个mime与程序间的数据库?
用vim模拟这个的话应该怎么操作?
比如,在windows下面,使用RunDll32.exe shell32.dll,ShellExec_RunDLL {文件名},即可用默认的打开方式打开各种文件。
ubuntu下面,应该怎么操作?
能否利用系统已经注册好了的mime类型?还是得自己建立一个mime与程序间的数据库?
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: 如何根据文件类型,选择程序打开文件
你想要 vim 模拟什么东西?
你到底想问什么?
vim 跟 nautilus 能比么? 一个编辑器一个是文件管理器
还是你指把 vim 当文件管理器的时候模拟 nautilus 的双击打开?
实在不知道你想问什么, lx 解答
你到底想问什么?
vim 跟 nautilus 能比么? 一个编辑器一个是文件管理器
还是你指把 vim 当文件管理器的时候模拟 nautilus 的双击打开?
实在不知道你想问什么, lx 解答
- rykka
- 帖子: 59
- 注册时间: 2011-06-24 9:14
-
- 帖子: 403
- 注册时间: 2007-10-27 1:04
Re: 如何根据文件类型,选择程序打开文件
windows 下面,利用我提供的那个命令,可以在cmd下面打开任何,已经在系统里面注册过的类型的文件。fanhe 写了:你想要 vim 模拟什么东西?
你到底想问什么?
vim 跟 nautilus 能比么? 一个编辑器一个是文件管理器
还是你指把 vim 当文件管理器的时候模拟 nautilus 的双击打开?
实在不知道你想问什么, lx 解答
我想知道,ubuntu下面,有没有类似的通吃的指令?可以直接在gnome-terminal下面工作的指令?
-
- 帖子: 403
- 注册时间: 2007-10-27 1:04
Re: 如何根据文件类型,选择程序打开文件
en,多谢3楼的。可用。
-
- 帖子: 403
- 注册时间: 2007-10-27 1:04
Re: 如何根据文件类型,选择程序打开文件
你的在后面加一个&。表示另起炉灶。
- rykka
- 帖子: 59
- 注册时间: 2011-06-24 9:14
Re: 如何根据文件类型,选择程序打开文件
这样啊,加 & 确实可用。
可在vim中不加也能运行啊
而以前我在ubuntu下的gvim也是不加的

可在vim中不加也能运行啊
而以前我在ubuntu下的gvim也是不加的

- Fermat618
- 帖子: 728
- 注册时间: 2008-12-28 16:01
-
- 帖子: 403
- 注册时间: 2007-10-27 1:04
Re: 如何根据文件类型,选择程序打开文件
多谢8楼的好心人。
*unix下的工具太多了,没人指点,还真像无头苍蝇一样。
*unix下的工具太多了,没人指点,还真像无头苍蝇一样。
-
- 帖子: 54
- 注册时间: 2008-03-12 14:33
Re: 如何根据文件类型,选择程序打开文件
在我的_vimrc里有这样一段:
还有这样一段:
代码: 全选
"" Open URL in browser {{{
function! Browser ()
let line = getline (".")
let line = matchstr (line, "http[^' ]*")
silent exec "!E:\\Software\\FirefoxPortable\\FirefoxPortable.exe ".line
endfunction
" }}}
"" Open Url on this line with the browser \w {{{
map <Leader>url :call Browser ()<CR>
" }}}
代码: 全选
"" Online Documentation {{{
function! OnlineDoc()
" let s:browser = "swiftfox"
let s:browser = "E:\\Software\\FirefoxPortable\\FirefoxPortable.exe"
let s:wordUnderCursor = expand("<cword>")
if &ft == "cpp" || &ft == "c"
let s:url = "http://www.google.com/codesearch?q=".s:wordUnderCursor."+lang:".&ft
elseif &ft == "vim"
let s:url = "http://www.google.com/codesearch?q=".s:wordUnderCursor
else
return
endif
let s:cmd = "silent !" . s:browser . " " . s:url "&"
execute s:cmd
redraw!
endfunction
" let maplocalleader=',' " all my macros start with
" online doc search
" map <LocalLeader>k :call OnlineDoc()<CR>
map <leader>k :call OnlineDoc()<CR>
" }}}
操作系统:Linux erocpil 2.6.38-gentoo-r6 #2 SMP Sun Sep 11 10:15:16 GMT 2011 x86_64 Intel(R) Core(TM)2 CPU T5200 @ 1.60GHz GenuineIntel GNU/Linux
编程语言:C/C++,Perl。
谷歌代码:manshow-重新编译的win32版本Vim,加入诸多特性:非等宽中文字体(如微软雅黑),脚本语言接口(如Perl,Python,Lua),透明效果等。
个人主页:http://lyx.us.tc/
编程语言:C/C++,Perl。
谷歌代码:manshow-重新编译的win32版本Vim,加入诸多特性:非等宽中文字体(如微软雅黑),脚本语言接口(如Perl,Python,Lua),透明效果等。
个人主页:http://lyx.us.tc/
-
- 帖子: 403
- 注册时间: 2007-10-27 1:04
Re: 如何根据文件类型,选择程序打开文件
多谢10楼的朋友,我根据你的脚本,把两个函数做了一个合并——这样,只用记住一个快捷键。
其中,至于真正的工作函数:
system#WinExp_{MySys()}(url)
按系统的不同(windows和linux),分为两个实例(system#WinExp_linux/system#WinExp_windows),分别呼叫合适的程序。
其中,至于真正的工作函数:
system#WinExp_{MySys()}(url)
按系统的不同(windows和linux),分为两个实例(system#WinExp_linux/system#WinExp_windows),分别呼叫合适的程序。
代码: 全选
" Sarrow: 2011-11-28
nnoremap <leader>www :call system#OnlineDoc()<CR>
" Sarrow: 2011-11-28
" inspired by
" http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=355303
function! system#OnlineDoc() " open Online Documentation or search in google
let wordUnderCursor = expand("<cword>")
if wordUnderCursor =~ '\<https\?\>'
let url = matchstr (getline("."), 'https\?[^''"\s]*')
else
if &ft == "cpp" || &ft == "c"
let url = "http://www.google.com/codesearch?q=" . wordUnderCursor . "+lang:" . &ft
elseif &ft == "vim"
let url = "http://www.google.com/codesearch?q=" . wordUnderCursor
else
let url = 'http://www.google.com/search?q=' . wordUnderCursor . '&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest'
endif
endif
call system#WinExp_{MySys()}(url)
endfunction
" End: 2011-11-28