环境:window下可以使用gvim编辑软件 学习主要是在ubuntu15敲击命令
学习的视频来自于智普教育vim使用视频
1. sudo apt show vi 查看安装的vi版本,当然了我的ubuntu两个都能看到已安装
sudo apt show vim
根据视频上所说,ubuntu默认安装的都是vim-tiny这一版本,这一版本下vim键盘方向键不能使用,退格键,delete键都不能使用
sudo apt show vim-tiny 查看安装的vim-tiny

cd /usr/bin目录下
ls -l vi 查看vi的安装目录

sudo apt search vim 查找vim的安装包,具体是什么没弄明白
sudo apt install vim 安装完整版,增强版。我的提示安装的vim runtime

安装完成后的vim会比原来的好用多了。

2.vim的基本使用
2.1进入
touch hello 创建文件
vi hello 打开文件
进入到vim,vim处于一般操作模式,
不可写入文字,只能进行一些操作
这种状态称为 vim一般操作模式。
移动光标
拷贝,删除,粘贴
2.2输入
按i进入到编辑模式,由操作模式进入到编辑模式
vim编辑完一行以后,推荐按esc后o键进入下一行。
按esc之后按k可以向上移动光标
建议只有在你想要编辑文件的时候才进入编辑模式,一般情况下建议在一般模式就行
a键在光标的前面插入
i光标前插入
2.3保存
esc进入一般模式,
:号进入末行命令模式
:w保存
:q退出
:wq存盘退出
:q!不保存退出

2.4退出
:q退出
:wq存盘退出
:q!不保存退出
练习代码
#include <stdio.h>

int main(int argc, char * argv[])
{
printf("hello world!\n");
return 0;
}
3.vim单文件里面复制与粘贴操作
shift + o 是在光标的上一行增加一行
在一般模式下也就是esc模式下按 yy表示复制
p表示当前行下面粘贴
shift + p(大写) 表示当前行上面粘贴
一般模式下x表示删除字符

4yy复制当前行下4行
剪切
ndd dd删除当前行 ndd 删除当前开始连续的n行

替换模式 一般模式
r 想替换的字符 就替换了
练习代码
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int minus(int a, int b)
{
return b - a;
}

int main(int argc, char * argv[])
{
int sum = 0, x = 12, y = 14;
printf("hello world!\n");
sum = add(x, y);
printf("x = %d y = %d sum = %d\n",x, y, sum);
sum = minus(x, y);
printf("x = %d y = %d min = %d\n",x, y, sum);
return 0;
}
4.vim多文件间赋值与粘贴操作
cp hello.c math.c 复制文件。到math文件里面把main函数删除
10dd删除10行
8dd删除8行
不分屏方式多文件间文字拷贝
:e math.c 调用别的文件到vim,
执行完复制命令后,
:e hello.c 回原来的文件。
执行粘贴操作

分屏复制
sp math.cs上下分屏显示两个文件
两个文件窗口的切换
ctrl + ww 窗口之间的切换。

vsp垂直分屏
:wqall 全部文件存盘退出

vi里面显示行号
:set nu 显示行号
:set nonu 不显示行号
vi 语法高亮
:syntax off 关闭语法高亮
:syntax on 开启语法高亮

练习代码
math.c
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int minus(int a, int b)
{
return b - a;
}
hello.c
include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int minus(int a, int b)
{
return b - a;
}
int main(int argc, char * argv[])
{
int sum = 0, x = 12, y = 14;
printf("hello world!\n");
sum = add(x, y);
printf("x = %d y = %d sum = %d\n",x, y, sum);
sum = minus(x, y);
printf("x = %d y = %d min = %d\n",x, y, sum);
return 0;
}

5.vim 查找 处于一般模式下。
esc / 查找,光标会自动到出现的位置。
n键上下切换匹配的值。

shift + k查看帮助文档
q退出
/是搜索是当前光标往下搜索。
?是当前光标往上搜索。
n 下一个 shift + n上一个

6.vim 替换
:起点,终点s/被替换的字符串/替换成的字符串
:2,9s/int/float
:2,9s/int/float/g /g表示全部替换。
:%s/int/float/g %表示全文

u撤销操作
:%s/int/float/gc comfir表示要需要确认。

linux下的vim使用笔记的更多相关文章

  1. Linux下Vi/Vim使用笔记

    启动和关闭vim vi 打开 Vi/Vim 打开 Vi/Vim 并加载文件 <file> vi <file> vim编辑器的三种模式:一般模式.编辑模式和命令行模式在一般模式中 ...

  2. Linux下使用vim编辑C程序

    这几天在系统能力班自学linux,加上最近大数据课上开始使用linux,我在这里总结一下,linux下使用vim编辑c程序的一些问题. 大数据课上是直接使用micro来编辑的,我这里只是简单的说明一下 ...

  3. linux下使用vim替换文件中的^M换行符

    在linux下打开windows编辑过的文本,会出现由于换行符不一致而导致的内容格式错乱的问题.最常见的就是出现^M . 我出现的问题是:在windows编辑过的文件,传到linux上后再用vim打开 ...

  4. linux下安装一款笔记软件(为知笔记)

    今天突然想在ubuntu上安装一款跨平台(windows.linux.android)的笔记软件来做日常记录.文章记录以及网页收藏.原先并没有使用过类似的软件,只是见身边的很多人在使用印象笔记来做记录 ...

  5. win下gvim或者linux下的vim安装vundle都适用的配置文件 - 在当前目录及其子目录下**, 的所有文件* 中, 搜索当前光标所在的单词

    gvim下的普通配置: if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=utf-8,g ...

  6. <实训|第四天>Linux下的vim你真的掌握了吗?附上ftp远程命令上传。

    期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...

  7. Linux下使用vim命令编辑与修改文本内容

    输入 vim --help VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jul 26 2017 20:13:43) 用法: vim [参数] [文件 .. ...

  8. Linux下Vi/Vim的使用方法

    本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特 ...

  9. linux 下vi /vim 中文汉字乱码解决

    http://my.oschina.net/laserdance/blog/53474很多win下编译的配置文件(译码格式有utf8/gbk)上传到linux服务器上时打开汉字乱码 解决方法如下: 修 ...

随机推荐

  1. UI----安健1 button lable textfiend

    //按钮 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect ];//按钮形状 button.frame = CGR ...

  2. 浅谈C/C++引用和指针的联系和区别

    为什么C/C++语言使用指针? 答案:①一方面,每一种编程语言都使用指针.不止C/C++使用指针. 每一种编程语言都使用指针.C++将指针暴露给了用户(程序员),而Java和C#等语言则将指针隐藏起来 ...

  3. svn地址如何更改

    1.先进入平时放的更新文件的位置 2.然后右键 选中TortoiseSVN中的Relocate修改里面的完了之后输入账号和密码就好了当然你要记得密码和账号

  4. JavaScript(10)——Ajax以及跨域处理

    Ajax以及跨域处理 哈哈哈,终于写到最后一章了.不过也还没有结束,说,不要为了学习而学习,恩.我是为了好好学习而学习呀.哈哈哈.正在尝试爱上代码,虽然有一丢丢的难,不过,我相信我会的! [Ajax] ...

  5. MFC中将编辑框文本转换成整数,从而实现两个整数相加。

    在头文件中,定义三个控件变量,如m_data1,m_data2,m_sum; void Cuse_demo_dllDlg::OnBnClickedButton1(){ CString data1; C ...

  6. hdu_5753_Permutation Bo(找规律)

    题目连接:hdu_5753_Permutation Bo 题意: 给你一个有n个数的数列c1~cn,h1~hn为1~n的排列,求ci[hi>hi-1  and  hi>hi+1]的期望和. ...

  7. hdu_1115_Lifting the Stone(求多边形重心)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 题意:给你N个点围成的一个多边形,让你求这个多边形的重心. 题解: 将多边形划分为若干个三角形. ...

  8. linux下shell命令trap

    某些时候,在执行shell脚本(.sh)时,我们并不希望被打断.这时我们要用到trap命令. 例如: 在shell脚本中,忽略“终止”信号 trap  ' '   TERM

  9. Hadoop2.6.0 动态增加节点

    本文主要从基础准备,添加DataNode和添加NodeManager三个部分详细说明在Hadoop2.6.0环境下,如何动态新增节点到集群中. 基础准备 在基础准备部分,主要是设置hadoop运行的系 ...

  10. 数据库NULL和 ‘’ 区别

    NULL判断时 : IS NOT NULL ''判断时: !=''