vim的只读模式问题

Vim、Emacs配置和使用
回复
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53

vim的只读模式问题

#1

帖子 风间星魂 » 2010-07-25 13:10

我知道用vim -r之类的参数可以启动只读模式。。

但现在情况如下,编辑.c/.cpp文件的时候有时候要ctrl+] gf跳转到头文件定义里,往往不小心按错,又无法设置为只读,小心翼翼的很不爽~

有没办法用set设置某一类型的文件为只读?这样就可以写在.rc文件里避开这个麻烦了~ :em20
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的只读模式问题

#2

帖子 lilydjwg » 2010-07-25 14:23

以下代码如何?

代码: 全选

au BufRead *.h setl readonly nomodifiable
或者把setl部分写到相应的 ftplugin/xxx.vim 里去,针对某一文件类型生效。
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53

Re: vim的只读模式问题

#3

帖子 风间星魂 » 2010-07-25 15:05

lilydjwg 写了:以下代码如何?

代码: 全选

au BufRead *.h setl readonly nomodifiable
或者把setl部分写到相应的 ftplugin/xxx.vim 里去,针对某一文件类型生效。
读入缓冲区后设置 *.h文件为只读有效是有效,但还是差一点,这个文件名在rc文件里可以正则么?我只设想标准库<>.h 头文件为只读 :em20

"".h的头文件不为只读
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的只读模式问题

#4

帖子 lilydjwg » 2010-07-25 22:13

风间星魂 写了:
lilydjwg 写了:以下代码如何?

代码: 全选

au BufRead *.h setl readonly nomodifiable
或者把setl部分写到相应的 ftplugin/xxx.vim 里去,针对某一文件类型生效。
读入缓冲区后设置 *.h文件为只读有效是有效,但还是差一点,这个文件名在rc文件里可以正则么?我只设想标准库<>.h 头文件为只读 :em20

"".h的头文件不为只读
不能正则,但可以有路径。如果还是不行,可以在 ftplugin 里做判断,像这样:

代码: 全选

if expand('%') =~ '.....'
  setl readonly nomodifiable
endif
BTW,标准库头文件不是在系统里普通用户没有权限修改的吗?
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53

Re: vim的只读模式问题

#5

帖子 风间星魂 » 2010-07-26 0:16

lilydjwg 写了:
风间星魂 写了:
lilydjwg 写了:以下代码如何?

代码: 全选

au BufRead *.h setl readonly nomodifiable
或者把setl部分写到相应的 ftplugin/xxx.vim 里去,针对某一文件类型生效。
读入缓冲区后设置 *.h文件为只读有效是有效,但还是差一点,这个文件名在rc文件里可以正则么?我只设想标准库<>.h 头文件为只读 :em20

"".h的头文件不为只读
不能正则,但可以有路径。如果还是不行,可以在 ftplugin 里做判断,像这样:

代码: 全选

if expand('%') =~ '.....'
  setl readonly nomodifiable
endif
BTW,标准库头文件不是在系统里普通用户没有权限修改的吗?
行了,谢谢兄弟,用了if判断! :em11
我有时候用root,然后有些安装到家目录的三方库。 :em20

严重感谢! :em11
回复