Ubuntu 下面的vim或者的gvim的配置文件

2023-10-24 06:32

本文主要是介绍Ubuntu 下面的vim或者的gvim的配置文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于是安装的英文系统,故在用vim和gedit时 中文显示有问题,对于vim,解决方法如下:

打开vim的配置文件,位置在/etc/vim/vimrc

在其中加入

" 关闭兼容模式
set nocompatible
" gvim 字体设置
set guifont=DejaVu\ Sans\ Mono\ 12
" gvim 内部编码
set encoding=utf-8
" 当前编辑文件编码
set fileencoding=utf-8
" gvim 打开文件支持编码的文件
set fileencodings=utf-8,gbk,cp936,gb2312,big5
" 解决console输出乱码
language messages zh_CN.utf-8
" 设置终端编码为gvim内部编码encoding
let &termencoding=&encoding
" 防止特殊符号无法正常显示
set ambiwidth=double
" 缩进尺寸为4个空格 or "set shiftwidth=4
set sw=4
" tab 宽度为4个字符 or " set tabstop=4
set ts=4
" 编辑时所有tab替换为空格
set et
" 按一次backspace就删除4个空格
set smarttab
" 不生成备份文件
set nobackup
" 开启行号标记 or "set number
set nu
" 配色方案为desert or " colorscheme torte
colo desert
" 关闭右侧滚动条
set guioptions-=r
" 开启自动缩进
set autoindent
set cindent
" 取消光标闪烁
set gcr=a:blinkon0
"set gcr=i-ci:ver10
"set gcr=a:block-blinkon0
set noswapfile
set virtualedit=onemore
set noexpandtab
set cursorline              " 突出显示当前行
"set backspace=2              " 设置退格键可用
"set cindent shiftwidth=4     " 自动缩进4空格
set smartindent              " 智能自动缩进
set showmatch               " 显示括号配对情况
syntax enable                " 打开语法高亮
syntax on                    " 开启文件类型侦测
filetype indent on           " 针对不同的文件类型采用不同的缩进格式
filetype plugin on           " 针对不同的文件类型加载对应的插件
filetype plugin indent on    " 启用自动补全
"set nowrap                  " 设置不自动换行
set wrap
"set foldmethod=syntax        " 选择代码折叠类型
"set foldlevel=100            " 禁止自动折叠
"set laststatus=2             " 开启状态栏信息
"set cmdheight=2              " 命令行的高度,默认为1,这里设为2
" 解决菜单乱码
"source $VIMRUNTIME/delmenu.vim
"source $VIMRUNTIME/menu.vim
"set guioptions-=m       " 隐藏菜单栏
"set guioptions-=L       " 隐藏左侧滚动条
"set guioptions-=b       " 隐藏底部滚动条
"set showtabline=0       " 隐藏Tab栏
"set clipboard=unnamed
set lines=25 columns=108
"文件在外部被修改则自动保存
set autoread
"同样适用于jQuery的js语法高亮
au BufRead,BufNewFile *.js set syntax=jquery

imap <C-D> <ESC>ddi
"Move one line up and down
"map <A-UP> yyddkkp
"map <A-DOWN> yyddp
"nmap <A-UP> yyddkkp
"nmap <A-DOWN> yyddp
"imap <A-UP> <ESC>yyddkpi
imap <A-DOWN> <ESC>yyddpi
"Copy one line up/down to the original line
"map <C-UP> yykp
"map <C-DOWN> yyp
"nmap <C-UP> yykp
"nmap <C-DOWN> yyp
"imap <C-UP> <ESC>yykpi
"imap <C-DOWN> <ESC>yypi
imap <C-A-Down> <ESC>yypi
imap <S-CR> <ESC>o

":inoremap ) ()<Esc>i          
":inoremap ( ()<Esc>i 
":inoremap { {}<Esc>i  
":inoremap } {}<Esc>i  
":inoremap [ []<Esc>i  
":inoremap ] []<Esc>i  
":inoremap < <><Esc>i  
":inoremap > <><Esc>i  
":inoremap " ""<Esc>i  
":inoremap ' ''<Esc>i 
:map <C-S-C> "+y
:map <C-S-V> <ESC><S-Insert>i




 :noremap        普通,可视和操作符等待模式
        :vnoremap       
可视模式
         :nnoremap       
普通模式
        :onoremap       
操作符等待模式
        :noremap!       
插入和命令行模式
        :inoremap       
插入模式
        :cnoremap       
命令行模式



删 除 映 射

要删除一个映射,使用 ":unmap" 命令。同样,删除映射的命令也和运行模式相关:

        :unmap          
普通,可视和操作符等待模式
        :vunmap         
可视模式
        :nunmap         
普通模式
        :ounmap         
操作符等待模式
        :unmap!         
插入和命令行模式
        :iunmap         
插入模式
        :cunmap         
命令行模式

使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来。例如使用以下命令,可以通过F5键将单词用花括号括起来:

:map <F5> i{ea}<Esc>

其中:i{将插入字符{,然后使用Esc退回到命令状态;接着用e移到单词结尾,a}增加字符},最后退至命令状态。在执行以上命令之后,光标定位在一个单词上(例如amount),按下F5键,这时字符就会变成{amount}的形式。


使用下表中不同形式的map命令,可以针对特定的模式设置键盘映射:

Command
命令
Normal
  常规模式  
Visual
可视化模式
Operator Pending
运算符模式
Insert Only
插入模式
Command Line
命令行模式
:mapyyy  
:nmapy    
:vmap y   
:omap  y  
:map!   yy
:imap   y 
:cmap    y

使用以下命令,可以在Normal Mode和Visual/Select Mode下,利用Tab键和Shift-Tab键来缩进文本:

nmap <tab> V>
nmap <s-tab> V<
vmap <tab> >gv
vmap <s-tab> <gv

使用以下命令,指定F10键来新建标签页:

:map <F10> <Esc>:tabnew<CR>

其中:<Esc>代表Escape键;<CR>代表Enter键;而功能键则用<F10>表示。首先进入命令行模式,然后执行新建标签页的:tabnew命令,最后返回常规模式。

同理:对于组合键,可以用<C-Esc>代表Ctrl-Esc;使用<S-F1>表示Shift-F1。对于Mac用户,可以使用<D>代表Command键。

注意:Alt键可以使用<M-key>或<A-key>来表示。

关于键盘符号的详细说明,请使用:h key-notation命令查看帮助信息。

我们还可以针对函数设置键盘映射。 例如,将以下代码加入.vimrc文件,就可以利用快捷键,来打开或关闭针对搜索结果的高亮显示。

查看键盘映射

使用:map命令,可以列出所有键盘映射。其中第一列标明了映射在哪种模式下工作:

标记模式
<space>常规模式,可视化模式,运算符模式
n常规模式
v可视化模式
o运算符模式
!插入模式,命令行模式
i插入模式
c命令模式

使用:map!命令,则只列出插入和命令行模式的映射。而:imap:vmap:omap:nmap命令则只是列出相应模式下的映射。

取消键盘映射

如果想要取消一个映射,可以使用以下命令:

:unmap <F10>

注意:必须为:unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。

针对不同模式下的键盘映射,需要使用与其相对应的unmap命令。例如:使用:iunmap命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用:nunmap命令。

如果想要取消所有映射,可以使用:mapclear命令。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。





配置文件详细说明:

http://www.oschina.net/code/snippet_103341_8984

set gcr=a:block-blinkon0
gcr 是 guicursor 的简写,a 表示所有模式,冒号后面是对应模式下的行为参数,每个参数用 - 分隔,block 说明用块状光标,blinkon 表示亮起光标时长,时长为零表示禁用闪烁。也可以是 blinkoff0 或者 blinkwait0
 
gvim 学习视频网址:
http://v.youku.com/v_show/id_XMzczNTcyMTMy.html
http://xiyou.cntv.cn/v-ccec4c70-7af9-11e1-b474-a4badb4689bc.html
 
http://www.vim.org/scripts/script.php?script_id=2540
http://xiyou.cntv.cn/9423920/index.html
插件地址:
http://www.vimer.cn/
 

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)即可,在Gvim中鼠标中键可起到相同的作用。

剪切/删除(在vim内部): dd

复制(在Vim内部):  yy

复制到系统剪切板:    "+y    (三个键)

下面是vim粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。

1.vim有12个粘贴板,分别是0、1、2、…、9、a、“、+;用 :reg 命令可以查看各个粘贴板里的内容。在vim中用 yy 只是复制到 " (双引号)粘贴板里,同样用 Ctrl+p 粘贴的也是这个粘贴板里的内容;

2.要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按 "Ny(注意带引号)完成复制,其中 N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按 y),例如要把内容复制到粘贴板 a,选中内容后按 "ay就可以了,有两点需要说明一下:

" 号粘贴板(临时粘贴板)比较特殊,直接按 y 就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;

+ 号粘贴板是系统粘贴板,用 "+y (依次按"   +    y这三个键)将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用 Ctrl+C 或右键复制的内容复制到vim中,需要在正常模式下按 "+p;

3.要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按 "Np,其中 N为粘贴板号,如上所述,可以按 "5p 将5号粘贴板里的内容粘贴进来,也可以按 "+p 将系统全局粘贴板里的内容粘贴进来。

注意:只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。

进入输入模式命令

i插入命令

a附加命令

o打开命令

c修改命令

r取代命令

s替换命令

Esc退出命令

输入模式的操作

Home光标到行首

End 光标到行尾

Page Up和Page Down上下翻页

Delect删除光标位置的字符

删除操作(命令模式使用)

x删除光标处的单个字符

dd删除光标所在行

dw删除当前字符到单词尾包括空格的所有字符

#x例如3x删除光标处向右的三个字符

#dd例如3dd从当前行开始向下删除三行文本

撤销操作

u命令取消最近一次的操作,可以使用多次来恢复原有的操作

U取消所有操作

Ctrl+R可以恢复对使用u命令的操作

复制操作

yy命令复制当前整行的内容到vi缓冲区

yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词

y$复制光标所在位置到行尾内容到缓存区

y^复制光标所在位置到行首内容到缓存区

#yy例如:5yy就是复制5行

#yw例如:2yw就是复制两个单词

如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

查找和替换

vi的查找和替换功能主要在末行模式完成:

至上而下的查找

/ 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work

至下而上的查找

?要查找的字符窜 例如:/ work

替换

这是最简单的替换命令,需要了解:s命令的标志位,例如“i”代表忽略大小写,“g”代表对行内所有匹配都做替换,“c”代表替换前提示。

%”字符表示在文件范围内进行替换,它相当于“1,$”,即从第一行替换到最后一行。

^ 代表行首

$ 代表行尾

\d 代表数字

\D 代表非数字

[x,y,z]:代表各种条件选择

:s/old/new用new替换行中首次出现的old

: s/old/new/g 用new替换行中所有出现的old

:#,# s/old/new/g用new替换从第#行到第#行中出现的old

:% s/old/new/g用new替换整篇中出现的old

如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

恢复文件

vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

O只读打开,不改变文件内容

E继续编辑文件,不恢复.swp文件保存的内容

R将恢复上次编辑以后未保存文件内容

Q退出vi

D删除.swp文件

或者使用vi -r 文件名来恢复未保存的内容

编辑多个文件

在同一编辑窗打开第二个文件,用 :sp [filename]

在多个编辑文件之间切换,用 Ctrl+w

获取帮助,用 :help [内容或命令]

可以对下面两个选项进行配置,以调整SuperTab的缺省行为:

  • g:SuperTabRetainCompletionType的值缺省为1,意为记住你上次的补全方式,直到使用其它的补全命令改变它;如果把它设成2,意味着记住上次的补全方式,直到按ESC退出插入模式为止;如果设为0,意味着不记录上次的补全方式。
  • g:SuperTabDefaultCompletionType的值设置缺省的补全方式,缺省为CTRL-P

你可以在vimrc中设置这两个变量,例如:

let g:SuperTabRetainCompletionType = 2
let g:SuperTabDefaultCompletionType = "<C-X><C-O>" 

现在你可以使用TAB来进行补全了,就像在shell中那样,方便了很多!

vim中其它的补全方式包括:

整行补全                        CTRL-X CTRL-L
根据当前文件里关键字补全        CTRL-X CTRL-N
根据字典补全                    CTRL-X CTRL-K
根据同义词字典补全              CTRL-X CTRL-T
根据头文件内关键字补全          CTRL-X CTRL-I
根据标签补全                    CTRL-X CTRL-]
补全文件名                      CTRL-X CTRL-F
补全宏定义                      CTRL-X CTRL-D
补全vim命令                     CTRL-X CTRL-V
用户自定义补全方式              CTRL-X CTRL-U
拼写建议                        CTRL-X CTRL-S 

 

这篇关于Ubuntu 下面的vim或者的gvim的配置文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273340

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

一文带你搞懂Nginx中的配置文件

《一文带你搞懂Nginx中的配置文件》Nginx(发音为“engine-x”)是一款高性能的Web服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中,下面就跟随小编一起来了解下如何... 目录摘要一、Nginx 配置文件结构概述二、全局配置(Global Configuration)1. w

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

centos 6安装 vim

centos 安装vim 1.首先查询当前当前vim所依赖的包存在不存在.检查缺少哪个几个依赖包 [root@bogon firstCopy]# rpm -qa|grep vivimvim-common-7.4.160-5.el7.x86_64vim-enhanced-7.4.160-5.el7.x86_64vim-filesystem-7.4.160-5.el7.x86_64vim-