linux+10字符+原因,linux-vim:vim的命令;~/.vimrc

未整理:http://blog.chinaunix.net/uid-10449864-id-2956813.html

http://coolshell.cn/articles/5426.html

http://www.cnblogs.com/amaoxiaozhu/archive/2012/03/23/2414007.html  这篇文章非常好

1 vim图例

1.1 vim三种模式

a49b4683483d3a82c7a211623a5bc058.png

1.2 vim功能键

7c118765858b0f1234310681c139aad0.png

2 vim操作

2.1 vim打开文件

vi filename #打开文件,并停留在上次编辑的位置

vi +n filename #打开文件,并跳转到第n行

vi +/word filename #打开文件,跳转到含有内容word的行

2.2 vim的移动

h 或 向左箭头键(←)

光标向左移动一个字符

j 或 向下箭头键(↓)

光标向下移动一个字符

k 或 向上箭头键(↑)

光标向上移动一个字符

l 或 向右箭头键(→)

光标向右移动一个字符

向后移动30行          :30+↓或者30+j

向后移动30个字符距离  :30+

向后移动30行          :30+

向下移动一页           :

向上移动一页           :

本行最前面             :

本行最后面             :

2.2 vim的插入

i

当前光标前插入

a

当前光标后插入

I

行首插入

A

行尾插入

o

当前行后插新行

O

当前行前插新行

2.3 vim的删除

cw

替换单词

dd

删除当前行

x

删除当前光标字符【相当于delete】

X

删除光标前一个字符【相当于backspace】

2.4 vim的跳转

gg

回到文件首

ngg/n

跳转到第n行

G

回到文件尾

2.4 vim的复制和粘贴

yy

复制当前行

p

p 为将已复制的数据在光标下一行贴上

P

P 则为贴在游标上一行

1,set paste/ set nopaste

2,设置.vimrc

2.5 vim的撤销和重做

u

撤销上一步的操作

ctrl+r

重做前一个命令

2.6 vim中的选中

按v或者V或者ctrl+v进入可视模式(三中按键功能不同,自己体验就明白了)

v

选任意字段

V

选任意行段

ctrl+v

选任意长方形块

【ctrl+v】 + 【I(shift i)】+【Esc Esc】,可以以正方形方式增加内容。

2.7 vim的取消高亮 在vim中用"/"查找后,如何把棕色高亮背景去掉?

比如我查找"printf",使用"/printf", 然后文件中的"printf"都以棕色背景高亮显示出来, 但下次打开该文件, 发现"printf"仍被高亮显示

:nohlsearch

2.8 vim中下一个单词,上一个单词

下一个单词 w

上一个单词 b

yw 直接复制一个单词

cw直接修改一个单词

vim中查找下一个 shift+*

vim中补全单词  ctrl+p

Ctrl+ n 中的n为next 中n;

Ctrl+p中的p为previous 中p。

2.9 vim字符串的查找 1. vim 中用 / 和 ? 来查找字符串,两者的区别是:

/string

会高亮显示光标后匹配的第一个字符串,回车后光标移到该字符串的第一个字母;

?string 会高亮显示光标前匹配的第一个字符串,回车后光标移到该字符串的第一个字母。

/\ 查找单独一个单词

在回车之后,按n键同方向转到下一个匹配的字符串,按N键反方向转到上一个匹配的字符串。

2. 用命令 :set ic 和 :set noic 来分别设置查找时不区分和区分大小写。

:set ic(ignorecase 的缩写) 忽略大小写

:set noic(noignorecase 的缩写) 不忽略大小写

或者直接查找单词时:/word\c  来忽略大小写  /word\C来区别大小写 如果查找特殊字符,如 ^、$、*、/ 和 .,需要在前面加 \ 来转义。

2.10 vim字符串的替换 1. vim 中可用 :s 命令来替换字符串,具体如下:

加g ,放在命令末尾,表示对搜索字符串的每次出现进行替换;

不加 g,表示只对搜索字符串的首次出现进行替换;

:s/str1/str2/替换当前行第一个 str1 为 str2

:s/str1/str2/g替换当前行中所有 str1 为 str2

:m,ns/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2

:m,ns/str1/str2/g 替换第 n 行开始到最后一行中所有的 str1 为 str2

(注:m和n 为数字,若m为 .,表示为当前行开始;若n为$,则表示到最后一行结束)

2.使用’#‘或者’+‘来替换掉’/‘作为分隔符

如果使用 # 作为分隔符,则中间出现的 / 不会作为分隔符,比如:

:s#str1/#str2/# 替换当前行第一个 str1/ 为 str2/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

3. 使用%表示替换每一行

:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每一行的第一个 str1 为 str2

:%s/str1/str2/g(等同于 :g/str1/s//str2/g 和 :1,$ s/str1/str2/g )替换文中所有 str1 为 str2

2.11 vim多窗口

1,横向切割

:split filename

2,纵向切割

:vsplit filename

3,快捷键

先进入

vim filename1

4295031.htmbe5a03effd67331ccd041c7797f78974.png

先横向切割^w+s

再将第二个窗口(上面的)编辑其他文件  :e  filename2

4295031.htm032ac807014dc5abdc7d2cf1551f5e72.png

再纵向切割^w+v

再将第三个窗口(左上角)编辑其他文件 :e  filename3

4ad70a4d743089526bf2d3f53c024904.png

若要退出,则使用:q或者:qa

4295031.htm

3 vim高级操作

3.1 vim查找相同两行

先将内容排序,然后查找前一行等于后一行者

vim test.txt

:sort

:/^\(.\+\)$\n\1

3.2 vim删除重复行

先将内容排序,然后删除前一行等于后一行者

vim test.txt

:sort

:g/^\(.\+\)$\n\1/d

3.3 文件末尾有^M标记

文本内容:如下示:

4768589 442352^M

4768590 asd520520^M

4768591 1^M

4768592 7936369^M

4768593 HZhaMBdl^M

4768594 3461593520^M

4768595 1^M

4768596 111111^M

4768597 7936369^M

4768598 8914066^M

4768599 7936369^M

4768600 wangyut2^M

set list结果:如果set list来显示所有包括不可见字符时(用set nolist取消),结果是这样的:

4768589 442352^M$

4768590 asd520520^M$

4768591 1^M$

4768592 7936369^M$

4768593 HZhaMBdl^M$

4768594 3461593520^M$

4768595 1^M$

4768596 111111^M$

4768597 7936369^M$

4768598 8914066^M$

4768599 7936369^M$

4768600 wangyut2^M$

问题原因:windows创建的文件是 \n\r结束的, 而linux,mac这种unix类系统是\n结束的。所以unix的文本到windows会出现换行丢失(ultraedit这种软件可以正确识别); 而反过来就会出现^M的符号了 。

解决方案:

在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。

注意:^M 要用 Ctrl+v, Ctrl+m来输入, 用键盘直接敲^和M是不行的! 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换--全局替换,否则只替换每行中匹配到的第一个。

sed ‘s/^M//' file // 正确,但是 ^M = Ctrl+v, Ctrl+m

3.4 vim删除偶数行奇数行

删除奇数行偶数行,也可以用normal命令,分别为:

奇数行

:%norm jkdd

偶数行

:%norm jdd

4 ~/.vimrc的配置

另外,对于问题【vim中键粘贴---导致代码格式混乱 】

按照博主的经验,在/etc/vim中,修改vimrc,添加 set pastetoggle=

在黏贴代码之前,进入insert模式,按F9,就可以关闭自动缩进。

当需要自己手写代码的时候,进入insert模式,默认就是自动缩进了。

set nocompatible

syn on " 打开语法高亮

set guifont=Luxi\ Mono\ 9 " 设置字体,字体名称和字号

set tabstop=4 " 设置tab键的宽度

set expandtab

set shiftwidth=4 " 换行时行间交错使用4个空格

set autoindent

set cindent

filetype plugin indent on

autocmd FileType c,cpp set cinoptions=:0,g0

autocmd FileType java set sw=2

autocmd FileType java set ts=2

set backspace=2 " 设置退格键可用

if has("gui_running")

color evening

else

color default

endif

set incsearch " 查询时非常方便,如要查找book单词,当输入到/b时,会自动找到

set hlsearch

set nonu " 显示行号

set showmatch " 设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号

set cursorline

"set paste

set ruler " 在编辑过程中,在右下角显示光标位置的状态行

au BufNewFile,BufRead *.hive set filetype=sql

au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif " 下次进入保留在上次停留位置

cmap w!! %!sudo tee > /dev/null %

例如如果要设置显示行号

将set nonu注释掉:"set nonu

再增加一行为:        set number

显示所有(包括不可见)字符  set list

:n1,n2s/word1/word2/g  n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)

:1,$s/word1/word2/gc  从第一行到最后一行寻找 word1 字符串,并将该字符串取代为word2 !且在取代前显提示字符给使用者确认 (conform) 是否需要取代!(常用)

:e! 将档案还原到最原始的状态!

ZZ  若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!

:set nu  显示行号,设定之后,会在每一行的前缀显示该行的行号

:set nonu  与 set nu 相反,为取消行号!

5,python插件

http://linux.chinaunix.net/techdoc/desktop/2006/06/02/933610.shtml

http://www.cnblogs.com/amaoxiaozhu/archive/2012/04/05/2423009.html

5.1,python.vim:这是python的语法高亮模块

copy python.vim to ~/.vim/afer/ftplugin

将文件中"    let python_highlight_all = 1前面的引号去掉,可支持内置函数,数字,空格,异常的语法高亮。

5.2,pydiction:这是python的tab键自动补全

a.python_pydiction.vim 将文件 python_pydiction.vim 放到 ~/.vim/after/ftplugin/ 路径下,如果这个路径不存在,你可以自己创建这个文件夹结构。(Windows下面的话放在目录类似的结构中)

b.complete-dict 将complete-dict文件放到你自己的某个路径下,后面的配置会用到这个文件,这个文件就是记录所有的python关键词。

我将这个文件放到 ~/.vim/tools/pydiction/complete-dict

c. 配置 .vimrc 文件 在 ~/.vimrc 文件中添加如下配置

"以下用来配置pydict.vim插件

set nobackup "取消备份即swp文件

set helplang=cn "设置中文帮助文档

set encoding=utf-8 "设置编码

syntax enable

syntax on "设置语法高亮

filetype plugin on

let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'

let g:pydiction_menu_height = 20

5.3,Matrix插件

matrix.vim

在 Vim 网站上下载文件 matrix.vim,存到 ~/.vim/plugin 目录中即可。

是的,说的就是电影 Matrix!Vim 的脚本并不是都干“正经事”的。想看一下电影里那些酷酷的字符在 Vim 的窗口里翻滚吗?发一个命令“:Matrix”即可(按任意键退出)。

http://linux.chinaunix.net/techdoc/desktop/2006/06/02/933610.shtml

http://www.cnblogs.com/amaoxiaozhu/archive/2012/04/05/2423009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值