配置ViM以支持C++、PHP、JAVA,加Cannot set language to “zh_CN.gb2312“错误解决办法

配置ViM的脚本在https://gitee.com/programmercarl/power-vim

感谢卡子哥!

按照README安装即可!

按照gitee/github页面配置完成后,vi 打开一个文件夹,若出现以下错误

解决办法如下:

目标:使系统/服务器支持中文,能够正常显示。

首先,安装中文支持包language-pack-zh-hans:

sudo apt-get install language-pack-zh-hans

然后,打开/etc/environmen

sudo vi /etc/environment

并且在文件的末尾追加:

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

或者直接

sudo sh -c 'echo "LANG=\"zh_CN.UTF-8\"" >> /etc/environment'
sudo sh -c 'echo "LANGUAGE=\"zh_CN:zh:en_US:en\"" >> /etc/environment'


再修改/var/lib/locales/supported.d/local(没有这个文件就新建,同样在末尾追加):

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312


最后,执行命令:

sudo locale-gen


对于中文乱码是空格的情况,安装中文字体解决。

sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming


以上,问题解决,中文显示正常。:)

这是还剩下这个问题

只需安装exuberant-ctags即可

sudo apt-get install exuberant-ctags

至此,ViM配置大功告成!

附上快捷键列表:

正常模式下的快捷键(非插入模式)
;n              // 打开文件目录树显示在屏幕左侧
;m              // 打开当前函数和变量目录树显示在屏幕右侧
;h              // 光标移动到左窗口 
;l              // 光标移动到右窗口
;k              // 光标移动到上窗口
;j              // 光标移动到下窗口 以上四个快捷键特别是打开多个窗口情况下。使用这个快捷键组合非常实用
;w              // 保存文件
;u              // 向上翻半屏
;d              // 向下翻半屏
;1              // 光标快速移动到行首
;2              // 光标快速移动到行末
;a              // 快速切换.h和cpp文件,写C++的时候很方便
;e              // 打开一个新文件
;z              // 切回shell交互命令,输入fg在切回vim,非常实用
;s              // 水平分屏,并打开文件目录选取想打开的文件,如果想新建文件,;e 就好 
;v              // 竖直分屏,并打开文件目录选取想打开的文件,如果想新建文件,;e 就好 
;fw             // 查找项目内关键字,前提是你的系统已经按照了ACK 
;ff             // 查找项目内文件名 
;gt             // 跳转到变量或者函数定义的地方,前提是安装ctags,并且在在PowerVim输入 ;tg命令 Jump to the definition of the keyword where the cursor is located, but make sure you have make ctags
;gr             // 跳回,对应着;gt
;tg             // 对当前目录打ctag 
;y              // 保存当前选中的目录到系统剪切板,前提是vim支持系统剪切板的寄存器
;gg             // 按顺序光标跳转各个窗口

// 一下快捷键是不用;的,直接在 非插入模式 下输入
e               // 快速删除光标所在的词 
tabc            // 关闭当前tab,可以用:tabnew来打开一个新的tab Close tab, of course you should :tabnew a file first. 
F1              // 编译并运行C++文件,自己写的C++例子的时候一键编译。前提手动在当前目录建一个bin文件夹,这是用来存放编译产生的执行文件 
F1              // 编译Java文件
F2              // 运行Java编译的class文件,一般如果要编译并运行Java文件 按F1编译,在按F2运行
gc              // 快速注释选中的块(是visual模式下选中的块) 
gcc             // 快速当前行
{               // 光标向上移动一个代码块
}               // 光标向下移动一个代码块
di(             // 删除括号里的内容
di{             // 删除花括号里的内容

更新!!!

有些用户会存在输入:gt之后,无法跳转到定义的问题,这是应为缺少tags文件

简介
ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有 Vim。并且 Vim 中已经默认安装了 ctags,它可以帮助程序员很容易地浏览源代码。

ctags 最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags, 有些语言也有专有的tags生成工具(比如java的jtags, python的 ptags)。ctags 支持的语言可以通过这个网站查看,目前共41种,基本上主流的 C/C++、Java、Python、C#、JavaScript、MATLAB、Assembler 等语言都是支持的。

安装 

sudo apt-get install ctags

 安装之后输入以下命令,来检查是否安装成功:

ctags --version

若安装成功,则会显示以下内容:

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Dec 14 2021, 22:52:05
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex

ctags 使用手册

man catgs

或者

ctags --help

生成索引文件,在源代码目录下输入

ctags -R .

或者对于c++语言

 ctags -R --languages=c++

-R 表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。. 表示当前目录,结合起来就是当前目录及所有子目录下文件。这条命令会在当前目录下产生一个 tags文件,当用户在当前目录中运行vi时,会自动载入此tags文件。

然后就可以使用配置好的powervim,vim普通模式下输入;gt;gr来跳转到变量或者函数定义的地方。

或者使用ctags的自带命令,可以自行搜索这一部分的内容。

在完成编码后,可以直接删掉tags文件。

ps:

你需要先生成 `tags` 文件,然后才能在支持 `ctags` 的编辑器或 IDE 中使用相关功能,如代码跳转、代码导航等。

生成 `tags` 文件的方法有很多种,你可以使用以下命令来生成当前目录及其子目录中所有支持的语言类型的符号索引:
 

ctags -R

这将递归地扫描当前目录及其子目录中的所有支持的语言类型的代码文件,并生成符号索引文件(通常命名为 `tags`)。生成的索引文件将包含代码中的函数、类、变量等符号信息。

一旦索引文件生成完成,你可以在支持 `ctags` 的编辑器或 IDE 中使用相关功能。具体操作方式可能会因编辑器或 IDE 而异,你可以参考编辑器或 IDE 的文档以了解如何使用 `ctags` 生成的索引文件。

请注意,如果你只需要为特定语言类型生成符号索引,可以使用相应的参数来指定语言类型。例如,要为 C++ 代码生成符号索引,可以使用以下命令:
 

ctags -R --languages=c++

这将递归地扫描当前目录及其子目录中的所有 C++ 代码文件,并生成符号索引文件。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值