ITPub博客

首页 > > > linux从入门到精通-文本编辑器vim

linux从入门到精通-文本编辑器vim

作者:zhmw 时间:2019-12-05 21:41:31 0 删除 编辑

文本编辑器vim

vim的工作模式

进入与退出vim

vim

vim 是 “vimsual interface IMproved”的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的

vim 不是一个排版程序,它不像MS Word 或 WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序

vim 是全屏幕文本编辑器,它没有菜单,只有命令

文本编辑器的模式

1)命令行模式

2)输入模式、编辑模式

3)末行模式

4)替换模式

命令行模式

存盘 ZZ 保存退出

光标移动:

移动光标 h j k l 左 下 上 右

光标移到本行开头home

移到本行末尾 end

光标移到末尾 G

光标移到开头gg

光标移动一个单词w

粘贴复制:

复制一行 yy 复制 n行 nyy

粘贴 p

删除:

删除字符 x 向后删除 X 向前删除

删除一行 dd ndd

删除一个单词 dw

撤销:

撤销操作 u 向上一步 . 重复上一次操作

查找:

查找/string define \ 转义字符 查找“/bin/bash” /\/bin\/bash

删除与修改

“编辑”是指文字的添加、修改以及删除,甚至包括文字区块的移动、复制等。

在vim 中一般认为输入与编辑是两个概念。

编辑是在命令模式下进行的,先利用命令移动光标来定位到要进行编辑的地方,然后再使用相应的命令进行编辑;而输入是在插入模式下进行的。

在命令模式下常用的编辑命令:

x 删除光标所在字符。

dd 删除光标所在的行。

r 修改光标所在字符,r 后是要修正的字符。

R 进入替换状态,输入的文本会覆盖原先的资料。

s 删除光标所在字符,并进入输入模式。

S 删除光标所在的行,并进入输入模式。

cc 修改整行文字。

u 撤消上一次操作。

. 重复上一次操作。

编辑模式

输入模式

在输入模式下,屏幕的左下方会出现INSERT 字样。

在输入状态下,用户可以输入文本的内容

在插入模式下也可以删除字符,而标准的vim 编辑器在编辑状态下不能删除字符,只能插入字符

如何从命令行模式进入输入模式

a 从光标所在位置后面开始输入资料,光标后的资料随增加的资料向后移动。

A 从光标所在行最后面的位置开始输入资料。

插入(insert)

i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。

I 从光标所在行的第一个非空白字符前面开始插入资料。

开始(open)

o 在光标所在行下新增一行并进入输入模式。

O 在光标所在行上方新增一行并进入输入模式。

如何退出输入模式

esc

末行模式

末行模式

只要在命令模式下输入命令“:”即可进入末行模式。

在末行模式下,可以进行保存文件、退出vim、进行查找和替换等操作。

:

当同时编辑多个文件时 因为同一时间只能显示一个文件,所以在VI中切换打开的文件可以使用N或n来切换打开的文件

:n 切换下一个文件

:N 切换上一个文件

:q 退出

:q! 强制退出不保存

:w

:wq

替换

:s/old/new 只替换光标所在行的第一个old string

:s/old/new/g 将本行(光标)的所有old string替换为new string g global n代表一个行号

:%s/old/new/g 将本文中所有的old string替换为new string

:1,2s/old/new/g 替换1到2行中的old string为new string

:.,2s/old/new/g .代表光标所在行 当前行到第二行的

:2,$s/old/new/g 替换2到最后一行中的old string为new string

:set nu 显示行号

:set nonu

:!command 在vim编辑器中执行一条命令(不许要退出当前的编辑,可以在编辑器中执行命令,类似退出编辑器执行命令)

查找

/string 将光标定位到string 所在的行。

?string 将光标移动到最近的一个包含 string 字符串的行

:n 把光标定位到文件的第n 行。

保存文档

可以用:n,mw filename 命令将第n 行到第m 行的文字存放的所指定的filename 文件中。

替换模式

命令行下按R键进入替换模式

退出

esc

相关配置文件

~/.viminfo vim历史编辑文档

~/.vimrc vim个性设置文档

自定义文件头注释 ~/.vimrc

autocmd BufNewFile *.py,*.sh,*.c exec ":call SetTitle()"

func SetTitle()

if &filetype == 'python'

call setline(1,"\#!/usr/bin/env python")

call append(line("."),"\#enconding=utf-8")

call append(line(".")+1, "\#Author: Bai Shuming")

call append(line(".")+2, "\#Created Time: ".strftime("%Y/%m/%d %H:%M"))

call append(line(".")+3, "")

elseif &filetype == 'sh'

call setline(1,"\#!/usr/bin/env bash")

call append(line("."),"\#enconding=utf-8")

call append(line(".")+1, "\#Author: Bai Shuming")

call append(line(".")+2, "\#Created Time: ".strftime("%Y/%m/%d %H:%M"))

call append(line(".")+3, "")

elseif &filetype == 'c'

call setline(1,"#include <stdio.h>")

call append(line("."), "")

endif

endfunc

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69901620/viewspace-3134293/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-12-04

  • 博文量
    295
  • 访问量
    9532