linux末行模式分屏不能竖屏,Linux系统下vim基本操作

04-06) 制表符TAB

>                  输入此命令则光标所在行向右移动一个 tab.

5>>                 输入此命令则光标后 5 行向右移动一个 tab.

:12,24>             此命令将12行到14行的数据都向右移动一个 tab.

:12,24>>            此命令将12行到14行的数据都向右移动两个 tab.

那么如何定义 tab 的大小呢? 有人愿意使用 8 个空格位, 有人用4个, 有的用2个.有的人希望 tab 完全用空格代替, 也有的人希望 tab 就是tab. 没关系, vim 能帮助你.以下的设置一般也都先写入配置文件中, 免得老敲.

:set shiftwidth=4   设置自动缩进 4 个空格, 当然要设自动缩进先.

:set sts=4          即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.

:set tabstop=4      实际的 tab 即为 4 个空格, 而不是缺省的 8 个.

:set expandtab      在输入 tab 后, vim 用恰当的空格来填充这个 tab.

文件格式自动匹配autocmd    这个命令十分的强大, 可以用这个命令实现对不同的文件格式应用不同的配置; 可以在新建文件时自动添加上版权声明等等. 这些命令一般定义在 ~/.vimrc 这样的配置文件里面. 由于他很强大, 所以我不能给出很具体的说明, 只能举几个例子, 详细的请看帮助.

:autocmd!               删除所有之前的自动命令.

autocmd FileType        java  source ~/.vim/files/java.vim

autocmd FileType        java  source ~/.vim/files/jcommenter.vim

以上两条命令让我在打开 java 文件时才应用后面提到的两个配置文件.

autocmd BufNewFile      *.java  0r ~/.vim/files/skeletons/java.skel

以上这条命令让我在新建java 文件时自动加入 java.skel 文件的内容.

autocmd BufNewFile      *.java  normal gnp    以上这条命令让我在新建java 文件时自动运行 gnp 命令, 这个命令进行一些特殊化处理, 比如将新 java 文件中的 __date__ 替换成今天的日期什么的.

04-07) 视图模式下注释整块内容

C-v> 选定要注释掉的行

列块选定后I是在前边都插入,A是在后边都插入

之后输入的东西就是插入到选定的行前边(后边)的,直至Esc.

删除整块的注释时,

C-v> 选定整块的注释//, 再按d删除

v选定范围后=   对选定范围内自动格式(适用于编程)

04-08) 寄存器操作

Vim可以将不同字段剪切或复制到不同寄存器中,您可以从不同寄存器中取出内容后粘贴

"   按下 " 键和另一个字符键,便可以定义一个寄存器。例如:

"a  "1

定义寄存器后直接进行操作

"ayy    将当前行复制到寄存器 a 中

"ap     将寄存器 a 中的内容粘贴到光标之后

"ayy    "ayy复制当前行(整行)到寄存器a中

"AY    "Ayy追加当前行到寄存器a中

3"Ayy    追加3行到寄存器a中

"Ay3j    追加3行到寄存器a中(同上)

5"ayy    复制五行内容至寄存器a。

5"Ayy    再复制五行附在寄存器a内容之后,现在寄存器a中有十行内容了!

* 通常情况下,寄存器 + ( " + Shift+= )对应X下的剪贴板。您在其它程序中复制的内容,可以使用 "+p 粘贴到Vim中;

您在Vim中,可以使用 "+y 将内容复制到剪贴板,再粘贴到其它程序中

* 没有指定寄存器时,Vim使用“无名寄存器”存储内容

使用撤销分支功能

可以使用 :undolist 命令查看缓冲区存在的撤销分支列表。而通过 :undo <> 命令则能够移到撤销的某个分支。

寄存器的主要有以下几种:

a. The unnamed register ""

"d", "c", "s", "x" 和 "y" 等涉及删除或拷贝的命令都会将内容存放于此(有例外)。

b. 10 numbered registers "0 to "9

0 为最近拷贝的内容,1-9 为最近删除的内容。

指定 named register 时不会存放于此。

c. The small delete register "-

删除不多于一行的内容会存在于此。

d. 26 named registers "a to "z or "A to "Z

小写与大写的区别是,小写是覆盖方式,大写是添加方式。

e. four read-only registers ":, "., "% and "#

". 存放上次插入的文本

有什么用?呵,例如,你输入了一段文本,在另一个地方也要有相同的内容,你输完后,一般要选择并复制一下吧?而用这个,直接移到需要插入的地方,i. 即可。

"% 是当前编辑文件全名,vim 中,% 就是代表当前编辑文件名的变量,不过,一般直接用 % 就行,例如":!cat %",vim 会自动扩展。

"# 是alternate file 名称 (这个我不知道)

": 上次执行的命令,记起来比较容易,冒号就是命令行提示符嘛。这个有些什么用呢?在测试配置文件时十分有用,先在命令行输入命令,调试好后,在 insert mode 里按C-R : 就可将该命令插到文件中。

f. the expression register "=

表达式寄存器,可以输入一个表达式,并插入结果。

g. The selection and drop registers "*, "+ and "~

跟 gui 即 X/Windows 剪贴板有关的变量。

在 X 中,鼠标中键与系统剪贴板不一样,至于区别,大家自己试验一下,这里给个提示,在命令行下输入 reg 可以列出所有寄存器的内容。

h. The black hole register "_

黑洞

i. Last search pattern register "/

上次搜索的内容。例如,我要搜索一个单词 linuxforum,但我比较懒,先输入 /linux,发现出现很多个 linux,多次按 n 无果,难道要重新输入 /linuxforum ? 不用,只需要 //forum 即可。呵,聪明的你一定想到了,用命令行历史也可以调来,按 C-p 或 C-n即可上下翻阅。这样也可以嘛,也比较快捷,但要查找 forumlinux 呢?

用 C-r 的话只需 /forum/ 。

在使用X Window系统时,有两个特殊的寄存器是需要注意一下的:”"*”访问的寄存器是X的主选择区域

(primary selection),”"+”访问的寄存器是X的剪贴板(clipboard)。

=====================================

存入寄存器:

1)在visual模式下,输入:”寄存器y”

2)录制的时候:输入:“q{regsiter}”,使用:在normal模式下,按“@{regsiter}”

================================

调用寄存器:

在插入模式里,按C+r,再按寄存器名,如调用寄存器a:

C+r,a就可以了。

======================================

vim常用的寄存器:

‘”‘     无名寄存器,包含最近删除或抽出的文本

‘%’     当前文件名

‘#’     轮换文件名

‘*’     剪贴板内容 (X11: 主选择)

‘+’     剪贴板内容

‘/’     最近的搜索模式

‘:’     最近的命令行

‘.’     最近插入的文本

‘-’     最近的行内 (少于一行) 删除

‘=’     表达式寄存器;你会被提示输入一个表达式

==============================================

04-09) 自定义的标记

m{mark}     用{mark} 标记当前的光标位置。你可以在文本中使用 26 个标记(a到z)。这些标记是不可见的,只

是一个由 Vim 记住的位置。

打开了多个文件时,可以用A-Z来标记不同文件的不同标记,在不同的文件中跳转。

`{mark}     {mark} 是指定义标记的那个字母。所以,移到标记a的命令是: 'a

'mark        (单引号加上一个标记)会移到标记所在行的行首

:marks    显示标记列表

``            跳转之前的位置

''            跳转之前的位置的行首

使用宏来做一些重复工作

q{mark}:使用q键然后跟一个a–z键,就可以开始记录键盘动作。

q:在记录键盘动作开始之后,再次按下q键,就停止记录。

@{mark}:使用@键然后跟一个a–z的字母,就会触发你刚才的记录的键盘动作。

@@:键入连续两个@@就可以重复上次的宏。

vim_gcc(help quickfix)在vim编辑器中进入编译程序

:set makeprg=gcc\ -Wall\ -otest\ test.c\ -std=c99\ -g

使用\是对空格进行转义

:make    vim自动按照makeprg选项定义的进行编译,并把编译输出重定向到一个临时文件中,当编译出错时,vim会从上述临时文件中读出错误信息,形成quickfix列表,并跳转到第一个错误地方。

quickfix模式常用命令:

:cc    显示详细错误信息

:cp    跳到上一个错误

:cn    跳到下一个错误

:cl    列出所有错误

:cw    如果有错误列表则打开quickfix窗口

:cold    到前一个较旧的错误列表

:cnew    到后一个较新的错误列表

05) SourceInstall:::::::::::::::::::::::::::::::::::::::::::::::::::::::

tar xjvf /mnt/sda5d/Linux/Software/vim-7.3.tar.bz2 -C /tmp

cd /tmp/vim-7.3/

./configure --prefix=/usr/local/vim73  --enable-cscope  --enable-tclinterp  --enable-rubyinterp  --enable-sniff  --enable-multibyte  --enable-hangulinput  --enable-gnome-check

make && make install

用户自定义配置~/.vimrc

filetype plugin on

filetype indent on

syntax on

set number

"set fileencodings=utf8,gb18030,gbk,gb2312,latin1,ucs-bom,default

set fileencodings=utf8,gb18030,gbk,gb2312,latin1,ucs-bom,default

用vim编辑远程文件:

vim ftp://love@192.168.135.2/sda5d/fglrx-install.log

REMOTE EDITING

:e dav://machine[:port]/path                    uses cadaver

:e fetch://[user@]machine/path                  uses fetch

:e ftp://[user@]machine[[:#]port]/path          uses ftp   autodetects :e http://[user@]machine/path                   uses http  uses wget

:e rcp://[user@]machine/path                    uses rcp

:e rsync://[user@]machine[:port]/path           uses rsync

:e scp://[user@]machine[[:#]port]//path/file    uses scp

:e sftp://[user@]machine/path                   uses sftp

REMOTE READING

:Nread ?                                        give help

:Nread "machine:path"                           uses rcp

:Nread "machine path"                           uses ftp   with :Nread "machine id password path"               uses ftp

:Nread "dav://machine[:port]/path"              uses cadaver

:Nread "fetch://[user@]machine/path"            uses fetch

:Nread "ftp://[user@]machine[[:#]port]/path"    uses ftp   autodetects :Nread "http://[user@]machine/path"             uses http  uses wget

:Nread "rcp://[user@]machine/path"              uses rcp

:Nread "rsync://[user@]machine[:port]/path"     uses rsync

:Nread "scp://[user@]machine[[:#]port]/path"    uses scp

:Nread "sftp://[user@]machine/path"             uses sftp

REMOTE WRITING

:Nwrite ?                                       give help

:Nwrite "machine:path"                          uses rcp

:Nwrite "machine path"                          uses ftp   with :Nwrite "machine id password path"              uses ftp

:Nwrite "dav://machine[:port]/path"             uses cadaver

:Nwrite "ftp://[user@]machine[[:#]port]/path"   uses ftp   autodetects :Nwrite "rcp://[user@]machine/path"             uses rcp

:Nwrite "rsync://[user@]machine[:port]/path"    uses rsync

:Nwrite "scp://[user@]machine[[:#]port]/path"   uses scp

:Nwrite "sftp://[user@]machine/path"            uses sftp

http: not supported!

REMOTE DIRECTORY BROWSING

:e [protocol]://[user]@hostname/path/

:Nread [protocol]://[user]@hostname/path/

LOCAL DIRECTORY BROWSING

:e /some/path/to/a/directory

06) 从2011-07开始转向使用emacs编辑器,vim只在修改服务配置文件时使用。其它如编辑学习文档或者脚本编程时使用emacs。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值