FreeBSD 8.1上安装Vim

1、安装 axel 优化 ports 速度

FreeBSD 中的 ports 安装工具默认下载程序用的是 fetch,下载时经常会出现龟速现象,为了提高 ports 安装速度,推荐替换为 axel 或者 wget,当然具体还得配置下 make.conf 文件。

1.1 使用 ports 安装 axel

cd /usr/ports/ftp/axel
make install

1.2 编辑make.conf配置文件

vi /etc/make.conf # 系统缺省安装以后没有 /etc/make.conf,自己创建一个。####加入以下内容####

FETCH_CMD = axel
FETCH_BEFORE_ARGS = -n 10 -a
FETCH_AFTER_ARGS =
DISABLE_SIZE = yes

MASTER_SITE_BACKUP?=\
http://mirrors.ustc.edu.cn/freebsd-ports/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.cn.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}

“?=” 表示如果没有赋值过,就赋值等号后面的值。

Assign the value to the variable if it is not already defined. 如果尚未定义该值,则将其分配给该变量。

参考 https://man.openbsd.org/make#VARIABLE_ASSIGNMENTS

Makefile一共提供了四个赋值运算符 (=、:=、?=、+=),它们的区别请看StackOverflow

1.3 portsnap 常用参数有以下三个

fetch 获取数据
extract 释放全部 ports
update 更新 ports

使用 portsnap 分成两个步骤:

下载压缩的 portsnap 快照,和更新现有系统。

下载或更新 portsnap 快照的方法是 portsnap fetch;首次安装,或希望将 ports tree 恢复到快照的样子,应使用 portsnap extract;之后更新系统中的 ports tree,则可以通过 portsnap update 来完成。

对于服务器而言,推荐在 crontab 中增加在每天3点执行 portsnap cron,以减少使用时所需要的下载时间。

首次下载 portsnap 快照时,需要下载一个大约50MB的快照基础文件。在中国大陆,由于网络状况的原因,这可能需要较长时间。可以考虑用 portsnap fetch -s portsnap.cn.freebsd.org 做首次下载。之后的下载,还是推荐使用正常的 portsnap fetch。

可以使用下面步骤完成上述情况

1.首先设置一个比较快的portsnap服务器,如果系统默认的地址你的访问速度也很快,可以不修改

vi /etc/portsnap.conf

设置SERVERNAME=portsnap.cn.freebsd.org ,你可以设置相对你速度快点的服务器的地址

2.执行下面命令

portsnap fetch extract

这样就完成了下载ports系统以及解压到/usr下面了,以后就不用 extract 了,用 update 更新。

portsnap fetch update

portsnap 第一次运行 extract 命令时,可能需要一段时间,以后更新使用 update 的时候,速度就快很多了。

如果写在 cron 可以用

portsnap cron update

这样定时更新就不用你要安装软件的时候更新了,节省时间。

2、安装 Vim

查找 vim 在 ports 的路径,这个好像在 Port 里边有个数据库树,存储各种软件的所在位置。

查找 vim 在 ports 的哪个目录位置

whereis vim
#或
cd /usr/ports/
make search name=vim
cd /usr/ports/editors/vim
make -DWITHOUT_X11 install clean
or
make WITHOUT_X11=yes install clean

-DWITHOUT_X11 选项作用是:不安装图形化界面的依赖包,只安装字符界面相关的包,这样子速度很快,我是用默认安装的 Ports 可能下载源也慢,肯能大概安装了4个小时很纳闷,后来终于发现添加 -DWINTOUT_X11 选项后 一会就安装好了。 PS:为啥我的还这么慢呢,都刷了20分钟了。

下载 vim patches 文件:
这里批量下载命令:从 北京理工大学开源软件镜像服务 当中下载:

rsync -vaHz --delete rsync://mirror.bit.edu.cn/pub/vim/patches/ ./

然后把这些文件 cp 到 /usr/ports/disfile/vim 目录中。

3、用 portmaster的方式安装

cd /usr/ports/
portmaster -GD --no-confirm editors/vim-console

-G //阻止make config,也就是使用默认选项
-D 升級或移除ports的時候不要將用不到的distfiles砍掉
--no-confirm //在将要执行升级或者安装之前,不询问用户,直接执行

PS:不使用图形界面的建议安装 vim-console,而非 vim,用 ports 安装 vim 默认是带 X 支持的,会附带安装上很多的 X 支持包。

VIM 配置:

root@JavasBoy.pts/0 ~ # cat .vimrc
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set noswapfile                  " Don't use swapfile
set nobackup                    " Don't create annoying backup files
set number
set cindent

" TAB setting
set expandtab               " replace  with spaces
"set noexpandtab				" 不自动把table转换为空格
set tabstop=4
set softtabstop=4
set shiftwidth=4
autocmd FileType yaml set expandtab

set nocompatible            " 设定 gvim 运行在增强模式下
set backspace=indent,eol,start
                            " 不设定的话在插入状态无法用退格键和 Delete
                            " 键删除回车符

set autoindent
set ruler
" Colorscheme
syntax on
set t_Co=256

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
" 设置命令行和状态栏
 
set cmdheight=1             " 设定命令行的行数为 1
set laststatus=2            " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=%F%m%r\ \|\ %{&ff},%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"},%Y\ \|%=\ %l/%L,%c\ \|\ %f
                            " 设置在状态行显示的信息如下:
                            " %f    当前的文件名
                            " %F    当前全路径文件名
                            " %m    当前文件修改状态
                            " %r    当前文件是否只读
                            " %Y    当前文件类型
                            " %{&fileformat}
                            "       当前文件编码
                            " %{&fileencoding}
                            "       中文编码
                            " %b    当前光标处字符的 ASCII 码值
                            " %B    当前光标处字符的十六进制值
                            " %l    当前光标行号
                            " %c    当前光标列号
                            " %V    当前光标虚拟列号 (根据字符所占字节数计算)
                            " %p    当前行占总行数的百分比
                            " %%    百分号
                            " %L    当前文件总行数
 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
" 显示空白字符
"set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
set listchars=eol:¬,tab:»·,trail:~,extends:>,precedes:<,space:␣

FreeBSD下的Vim默认安装路径为

/usr/local/share/vim/vim7*

在 FreeBSD 10.0 中 VIM 全局配置文件是放在

/usr/local/share/vim/vimrc

vim 7.4.900 vimrc localtion is

/usr/local/etc/vim/vimrc

这个文件中,每个用户的配置文件就是在~/.vimrc,一般我喜欢设置全局的。

让你在 FreeBSD 下用的更顺手。
https://wiki.freebsdchina.org/howto/c/config_your_csh

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
" 设置命令行和状态栏
 
set cmdheight=1             " 设定命令行的行数为 1
set laststatus=2            " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=%F%m%r\ \|\ %{&ff},%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"},%Y\ \|%=\ %l/%L,%c\ \|\ %f
                            " 设置在状态行显示的信息如下:
                            " %f    当前的文件名
                            " %F    当前全路径文件名
                            " %m    当前文件修改状态
                            " %r    当前文件是否只读
                            " %Y    当前文件类型
                            " %{&fileformat}
                            "       当前文件编码
                            " %{&fileencoding}
                            "       中文编码
                            " %b    当前光标处字符的 ASCII 码值
                            " %B    当前光标处字符的十六进制值
                            " %l    当前光标行号
                            " %c    当前光标列号
                            " %V    当前光标虚拟列号 (根据字符所占字节数计算)
                            " %p    当前行占总行数的百分比
                            " %%    百分号
                            " %L    当前文件总行数
 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
" 显示空白字符
set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣