VIM一些设置及常用shell命令总结(不断更新...)

本文深入探讨了VIM配置、插件使用、高效编辑技巧,以及Linux中的核心命令,包括文件管理、文本比较、远程登录配置、补丁应用、文件系统管理等实用技能。通过实例演示,帮助开发者提升Linux环境下的工作效能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. VIM配置文件及插件见百度网盘Linux相关目录。

2.   :set mouse=n  设置鼠标,可以支持滚轮,对我来说较为合适

3. 单词上输入gd可以高亮显示与之相同的单词

4. gg跳至文件的第一行,G跳至文件的最后一行,跳至指定的行号直接输入:num,或者ngg

5. VIM实现跳转至函数声明处:

     首先要安装了ctags,在程序的根目录下运行ctags -R,生成tags文件,然后在编辑程序时按Ctrl+]就会跳转到当前光标所在东西的定义处。若有多个tag,执行:ts,进行选择。Ctrl+o即可跳回。不过,当修改过代码后,需要重新生成tags。

    除了ctags,还有cscope,使用cscope -Rkbq,具体用法百度。

6.Putty登录Linux服务器后,vim不支持小键盘

    Terminal->Features里,找到Disable application keypad mode,选上就可以。

7.* #分别是向前向后跳转到光标选中的单词

8.分屏功能: 

    sp filename—>上下分窗口

    vsp filename—>左右分窗口

    ctrl+w—>在不同窗口见切换

    按v后按方向键可以多选;

    按y复制,p粘贴


9.前台&后台任务

    ctrl+z将一个Vim打开的文件放置后台

    jobs查看后台任务;

    fg num 把后台第num个任务调至前台运行;实际开发中较为快捷;


10.diff命令结果怎么看?

    diff A B

0a1,2         ——表示左边文件0行处,相对于右边文件1,2处有变化 a表示addition,有增加,下面是两个">空行"
>
>
23a26         ——表示右边文件比左边文件多了aasdqwe内容
> asdqawe
953c956
<
---
>
0a1,2
>
>
24,25c26
< #include <termios.h>  ——左边文件比右边文件多的内容
< #include <fcntl.h>
---
> asdqawe
953c954
<
---
>
      diff A B -y    ——两文件会并排输出,不同之处会标示出来

   diff A B -u     ——统一格式输出

   diff -f A B      ——会列出A要想和B相同,需要改变的内容。a表示增加,b表示删除,c表示更改。

# ls -l > txt1
# ls -l > txt2
# diff -f txt1  txt2

c1
总用量 60
.
c12            //表示txt的第12行改为下面两行的内容即可与txt2的内容相同   记住-f选项
-rw-rw-r--.  1 lvy  lvy   693  1月  2 09:35 txt1
-rw-rw-r--.  1 lvy  lvy     0  1月  2 09:35 txt2  
.
     其他:

   <指左边文件+指的是有增加内容

   >指右边文件-指的是有减少内容

   创建补丁:diff txt1 txt2 > txt1.patch  很简单是吧

   打补丁: 使用patch命令 后面也有说到

   实例:

   diff txt1 txt2 > txt1.patch

   patch ./txt1 < txt1.patch 

   这样txt1与txt2的内容就一致了。


11.find、grep命令

    find . -name "xxx" 

    grep -nr "xxx" /root /home --include=*.c


12.nfs+mount命令

      mount命令简介:-a表示按照/etc/fstab文件的内容挂载相关设备

                           -t表示挂载指定的文件系统类型。如vfat、NFS、ext2、ext3、iso9600等

                           -l列出当前所有已经挂载的设备


      nfs+mount 除了可以挂载NFS文件系统外,可以用来获取服务器目录的操作权限;

       第一步:查看服务器上nfs的配置,如/etc/exports文件,将你要共享文件夹写上;

           如/home/lvy/rootfs *(rw,sync,no_root_squash,no_all_squash)

       第二步:开发板中使用mount -t nfs -o tcp,nolock 192.168.0.150:/home/lvy/rootfs /tmp

           这样开发板的/tmp目录下就有了/home/lvy/rootfs的所有内容;

       第三步:做你想做的事了;

                  注意:umount  /tmp  用来卸载之前挂载的目录


13.basename命令

     用来得到不包含全路径下的文件名;

     例:

       basename ./misc/test_led/ledTest.h ——输出ledTest.h

       basename ./misc/test_led/ledTest.h .h—输出ledTest

       与Makefile中basename不同:$(basename ~/work/main.c)—>得到的是每一个全路径文件名除后缀外一切字符


14.vim中选中一个单词,选中一行,复制,粘贴

      1.光标放在单词开头,按v,按e,按y复制,按c剪切,按p粘贴

      2.光标放在单词任意位置,按viw,按y,按p粘贴

      3.按大写V,即可选中一行,对其进行相应的操作

      4.按ctrl+v进入可视化块的选择;

       

       1.光标移动到aaa的开头,按 v 按e 按y

       2.光标移动到bbb的开头,按 v 按e 按p

          也就说,快速选中一个单词,按v按e即可。


15.&&与||的区别(要深刻理解)

      &&前面的命令执行成功,后面的命令才会执行

      ||前面的命令执行失败,后面的命令才会执行

      ls -l && echo "Fuck"

      ls -l || echo "Fuck"


16.tr命令

         tr命令可以对来自标准输入的字符进行替换、删除以及压缩。如将大写转换成小写,可以使用:

          echo“ABC” | tr ‘A-Z’ ‘a-z’——得到abc

          echo "Hello" | tr "[:lower:]" "[:upper:]"——得到HELLO


17. patch打补丁

          patch -p1 < ../xxxpatch文件 //p1代表需要忽略的目录数,第一个斜杠/前面的目录被忽略


18.windows中的文件传到Linux中,文件结尾出现^M这类字符

         解决方法:dos2unix filename  或 sed -e 's/^M/\n/g'filename

     还有其他方法:参考 http://www.bitscn.com/os/linux/201409/316490.html


19.sed命令——详见另一篇文章,记录shell编程的

执行ifconfig eth2得:
eth2      Link encap:Ethernet  HWaddr 00:50:56:A1:18:98
          inet addr:192.168.0.150  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fea1:1898/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:165948117 errors:0 dropped:0 overruns:0 frame:0
          TX packets:218753464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3908811940 (3.6 GiB)  TX bytes:2990234769 (2.7 GiB)

想得到其中的 MTU:1500  Metric

     ifconfig eth2 | grep UP | sed -e 's/.*\(MTU:1500\)/\1/; s/.1$//'  ——需要深刻理解,-e表示多重编辑 .表示1个 *0个或多个 ?表示0个或1个 还有标签 引用的使用 


20.括号匹配:
% 可以让光标从它当前所在的括号跳转到与它相匹配的括号上去, 对花括号和
圆括号, 方括号都有效, 常用于手工检查括号是否匹对.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值