免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: babyyellow
打印 上一主题 下一主题

弱弱得问下 vim /vi 里的插件是用什么语言开发的? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-08-14 20:57 |只看该作者
原帖由 lihualoveyou 于 2008-8-14 20:12 发表
就是把vim的命令写到文件上,比如咱们常用的w,w!,wq……

这些应该都是内置命令吧

论坛徽章:
0
12 [报告]
发表于 2008-08-14 21:58 |只看该作者
vi不懂..
不过emacs我懂一些.
emacs有一些内部函数,用这些内部函数可以写自定义的函数,
之后可以调用这些自定义的函数,就是alt+x之后输入的.  也可以把快捷键绑定到函数上.
比如,可以把tab绑定到tab-to-tab-stop,就可以输入一个tab键了(默认是indent)

再比如,想删除光标前的一个单词,这个命令应该是kill-word,应该是绑定到了alt+d上了,可是这个键不好按,
于是,我想绑定到ctrl+;上,再把删除光标前的一个单词,绑定到ctrl+'上,就可以如下做:
(global-set-key [(control \] 'kill-word)
(global-set-key [(control \')] 'backward-kill-word)


我再写两个函数的定义,大体上就是这样吧..
(defun gtk()
  "gtkmm compile"
  (interactive)
  (setq command
        (concat "gcc -mms-bitfields -o "
                ( file-name-sans-extension
                  ( file-name-nondirectory buffer-file-name))
                " "
                (file-name-nondirectory buffer-file-name)
                " -lgtk -lgdk -lgobject -lglib"
                ))
  (if (not (null command))
      (let ((command (read-from-minibuffer "Compile command: " command)))
        (compile command))))

(defun asm()
  "asmber compile"
  (interactive)
  (setq command
        (concat "gcc -S "
                (file-name-nondirectory buffer-file-name)
                ))
  (if (not (null command))
      (let ((command (read-from-minibuffer "Compile command: " command)))
        (compile command))))


(  输入gtk就可以编译C文件.  输入asm可以编成asm文件)

论坛徽章:
0
13 [报告]
发表于 2008-08-14 23:07 |只看该作者

回复 #1 babyyellow 的帖子

VIM脚本的确可以完成一些功能,不过能力非常有限。
比较复杂的插件是用c开发的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP