`

企鹅日记(七):vim程序编辑器

vim 
阅读更多

在命令模式下输入 :wq 表示保存离开,输入 :wq! 表示强制写入并离开,前提是你的权限可以改变。

一般模式下的按键列表:

移动光标的方法
h 或 向左方向键(←) 光标向左移动一个字元
j 或 向下方向键(↓) 光标向下移动一个字元
k 或 向上方向键(↑) 光标向上移动一个字元
l 或 向右方向键(→) 光标向右移动一个字元
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个键来移动光标。 如果想要进行多次的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的組合按鍵, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于[Page Up] 按键 (常用)
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
+ 光标移动到非空白字元的下一列
- 光标移动到非空白字元的上一列
n<space> 那个 n 表示『数字』,例如 20 。按下数字后再按空白键,光标会向右移动这一行的 n 个字元。例如 20<space> 则光标会向后面移动 20 个字元距离。
0 或^或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字元处 (常用)
$ 或功能键[End] 移动到这一行的最后面字元处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字元
M 光标移动到这个屏幕的中央那一行的第一个字元
L 光标移动到到这个屏幕的最下方那一行的第一个字元
G 移动到这个文件的最后一行(常用)
nG n 为数字。移动到这个文件的第 n 行。例如 20G 则会移动到的第 20 行(可配合 :set nu)
1G或者gg 移动到这个文件的第 1 行 (常用)
n<Enter> n 为数字。光标向下移动 n 行(常用)
搜尋與取代
/word 向光标之下寻找一个名叫 word 的字串。例如要在文件內搜寻yidao这个字符串,就输入 /yidao 即可! (常用)
?word 向光标之上寻找一个字串名称为 word 的字串。
n 这个 n 是英文的小写按键n。代表『重复前一个搜寻动作』。举例来说, 如果刚刚我们执行 /yidao 去向下搜寻 yidao 这个字符串,则按下 n 后,会向下继续搜寻名为 yidao的字串。如果是执行 ?yidao 的话,那么按下 n 则会向上继续搜寻名为 yidao的字串!
N 这个 N 是英文大写按键N。与n刚好相反,为『反向』进行前一个动作。 例如 /yidao 后,按下 N 则表示『向上』搜寻yidao 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻关键词!
:n1,n2s/word1/word2/g n1与n2为数字。在第 n1 与 n2 行之间寻找 word1 这个字串,并将该字符串替换为 word2 !举例來说,在 100 到 200 行之间搜寻 yidao并取代为YIDAO:
『:100,200s/yidao/YIDAO/g』。(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字串,并将该字符串替换为 word2 !(常用)
:1,$s/word1/word2/gc 从第一行到最后一行寻找 word1 字串,并将该字符串替换为 word2 !每次替换前会提示用户消息是否替换!(常用)
删除、复制、粘贴
x, X 在一行中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是倒退键) (常用)
nx n 为数字,连续向后删除 n 个字元。比如,我要连续删除 10 个字元, 『10x』。
dd 删除光标所在的那一行(常用)
ndd n 为数字。删除光标所在的向下 n 列,例如 20dd则是删除 20 行 (常用)
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除光标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除光标所在处,到该行的最前面一个字符
yy 复制光标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制光标所在行到第一个行的所有资料
yG 复制光标所在行到最后一行的所有资料
y0 复制光标所在的字符到该行行首的所有字符
y$ 复制光标所在的字符到该行行尾的所有字符
p, P p 为将已经复制的数据在光标下一行粘贴上,P则为粘贴在光标上一行!  (常用)
J 将光标所在行和下一行数据合并成一行
c 重复删除多个资料,例如向下删 10 行,[ 10cj ]
u 还原(undo)前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是还原,另一个是重做~ 利用这两个功能按键,你的编辑,嘿嘿!很爽的啦!
. 不要怀疑,这个就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复粘贴等,按下小数点『.』就好了! (常用)

 

====块选择(Visual Block)====

区块选择按键说明
v 字符选择,会将光标经过的地方反白选择
V 行选择,会将光标经过的行反白选择!
[Ctrl]+v 列选择模式
y 将反白的区域复制下来
d 将反白的区域删除掉

====多文件编辑====

可以用vim file1 file2来打开多个文件同时编辑,多文件的三个命令:

多文件编辑的按键
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个 vim 的开启的所有文件

====多窗口功能====

在命令模式下输入:sp [filename],可在新窗口打开filename文件,如果没有输入filename,则默认把当前文件切割成两个。

窗口切换:

* ctrl+w+j把光标移动到下一个窗口

* ctrl+w+k把光标移动到上一个窗口

* ctrl+w+q其实就是:q结束离开的意思

====vim环境设置:~/.vimrc,~/.viminfo====

有没有发现呢,如果我们以vim查找一个文件内容,然后再次打开后,那个查找的字符串还是会反白显示。另外我们光标所在行数也是上次你关闭vim时候的行数,这个就是通过~/.viminfo这个文件记录的。相当于vim编辑的history文件,你编辑的历史记录基本都记录在这里头。自动产生的。o(╯□╰)o

vim的配置文件为/etc/vimrc,不过不建议你修改它,因为它是所有用户公共的默认配置文件,如果你想拥有自己的配置文件,可以修改~/.vimrc,这个文件默认是没有的,你可以手动建立一个,然后写入你自己有个性的设置:

[root@www ~]# vim ~/.vimrc
"这个文件的双引号 (") 是注释
syntax on               "语法高亮显示。
set hlsearch            "高亮度反白
set backspace=2         "可以用Backspace键删除
set ts=4                "tab键等于4个空格
set expandtab           "tab键自动变空格
set tabstop=4
set softtabstop=4
set autoindent          "自动缩进
set ruler               "可显示最后一行的状态
set showmode            "左下角那一行的状态
set nu                  "可以在每一行的最前面显示行号啦!
set bg=dark             "显示不同的底色色调
set cursorline          "光标所在行一横线
set laststatus=2        "显示当前编辑文件名
set showcmd
set magic
set showmatch
set lazyredraw
set history=100
set hlsearch            "高亮显示搜索结果
set incsearch           "增量搜索,每次输入一个字母都自动搜
====DOS与linux断行字符====

dos断行字符为CR(回车)与LF(换行)两个字符,而linux只有LF(换行)一个字符,如果是dos和windows系统需要跟linux系统进行文件文件的交互,需要进行转换。

命令:

# dos2UNIX [-kn] file [newfile]

# UNIX2dos [-kn] file [newfile]

-k:保留该文件的mtime时间

-n:保留旧文件,将转换后的内容输入到新文件newfile中

====语系编码转换====

# iconv –list

# iconv -f  原来编码  -t  新编码  filename [-o newfile]

实例分析:将繁体中文的utf8转换成简体中文的utf8编码:

# iconv -f utf8 -t big5 vi.utf8 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8

==============End=====================

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    分布式系统.pptx

    分布式系统.pptx

    源代码-360通用ASP防护代码(防sql注入).zip

    源代码-360通用ASP防护代码(防sql注入).zip

    node-v8.1.0-darwin-x64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    2020年ti杯电赛省赛A题代码整理

    2020年ti杯电赛省赛a题的项目 分为 手机端(android),主显示端,姿态检测手环端,心率滤波读取端 mcu 采用的是esp32.结合了适配esp32的arduino以及rtos框架进行开发。 开发环境 及 语言 安卓为android studio java开发 esp32为platform io c/c++ 节点间通信方式 tcp直连,手机端为总服务端 手机端 android 原生开发 主显示端 屏幕ili9341 spi 触摸xpt2046 图形 adafruit gfx ad芯片 ads112c04 测温 lmt70 姿态检测端 9轴 bno055 心率检测 心电 ads1292

    node-v6.15.0-sunos-x64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v9.3.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于网络爬虫技术的网络新闻分析

    基于网络爬虫技术的网络新闻分析主要用于网络数据爬取。本系统结构如下: (1)网络爬虫模块。 (2)中文分词模块。 (3)中3文相似度判定模块。 (4)数据结构化存储模块。 (5)数据可视化展示模块。

    毕业设计:python155基于贝叶斯网络的城市火灾预测(源码 + 数据库)

    毕业设计:python155基于贝叶斯网络的城市火灾预测(源码 + 数据库)

    项目初始化template

    项目初始化template

    游戏道具3D立体blender模型图标素材-3d Game Asset Icon Vol.1.zip

    游戏开发资源,游戏UI,游戏GUI,游戏图标,PSD格式,XD格式,PNG下载,源文件,可编辑下载,游戏购物充值界面,宝石,图标,PS格式,AI格式等,游戏APP

    node-v9.0.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于VL813+fe2.1s+VL160 10端口USB-HUB评估版设计硬件(原理图+PCB+封装库)文件.zip

    基于VL813+fe2.1s+VL160 10端口USB_HUB评估版设计硬件(原理图+PCB+封装库)文件,,硬件采用2层板设计,大小为45*78mm,包括ALTIUM设计的原理图PCB及器件原理图PCB封装库文件,可做为你的学习设计参考。 主要器件型号如下: FE2.1 INDUCTANCE Inductance LED LED MP8771 RES Resistor Res2 Resistor USB-typec-24p USB-typec-6p USB2.0 USB2.0x2 USB3.0 VL160 VL813 XTAL Crystal Oscillator XTAL-1

    linux 常用命令知识笔记详解.zip

    linux常用命令大全 Linux 是一种开源的操作系统,它的命令行界面是其最大的特点之 一。在 Linux 中,命令行是最常用的操作方式,因此熟练掌握 Linux 常用命令是非常重要的。本文将介绍一些常用的 Linux 命令。 1. ls 命令 ls 命令用于列出当前目录下的文件和目录。使用 ls 命令时,可以加 上一些参数来控制输出的格式。例如,使用“ls -l”命令可以列出 详细的文件信息,包括文件的权限、所有者、大小等。 2. cd 命令 cd 命令用于改变当前工作目录。使用 cd 命令时,可以输入目录的 绝对路径或相对路径。例如,输入“cd /home/user”可以进入 /home/user 目录,输入“cd ..”可以返回上一级目录。 3. mkdir 命令 mkdir 命令用于创建新的目录。使用 mkdir 命令时,需要指定要创 建的目录的名称。例如,输入“mkdir test”可以创建一个名为 test 的目录。 mkdir 命令用于创建新的目录。使用 mkdir 命令时,需要指定要创 建的目录的名称。例如,输入“mkdir

    来自网络至网格.pptx

    来自网络至网格.pptx

    pi-pi-net 是一个在linux环境下封装epoll的网络库,可以基于此库非常方便的实现Reactor网络模型.zip

    pi-pi-net 是一个在linux环境下封装epoll的网络库,可以基于此库非常方便的实现Reactor网络模型,或者web,rpc,websocket等网络框架的基础框架

    HTML5小游戏源码下载网页版游戏JS小游戏-驴子跳游戏(原作者绝对实战开发指南 + 游戏源码)珍藏版.zip

    HTML5小游戏源码下载,JS小游戏源码下载,坦克大战,驴子跳,连连看,俄罗斯方块,圈泡泡,塔防,太空战舰,愤怒的小鸟,植物大战僵尸,水果忍者,扫雷,超级玛丽,打地鼠,坦克大战,麻将等JS小游戏源码下载,游戏开发教程,网页游戏,本地直接打开就可以玩。

    node-v7.5.0-linux-armv7l.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    声网PC端SDK,用于音视频服务

    声网PC端SDK,用于音视频服务

    什么是python-对于我们来说学习python的意义是什么

    python

    基于Linux V4L2视频库、ASLA高级声音框架的远程视频及语音聊天.zip

    基于Linux V4L2视频库、ASLA高级声音框架的远程视频及语音聊天

Global site tag (gtag.js) - Google Analytics