Skip to content

Latest commit

 

History

History
105 lines (77 loc) · 1.77 KB

File metadata and controls

105 lines (77 loc) · 1.77 KB

vim

设置

  • 显示行号 :set nu

快捷按键

  • . 表示当前行
  • $ 表示行尾
  • 0 表示行首
  • ^ 表示行首非空白字符
  • % 表示所有行

选中

  • v 进入选择模式
  • 选中之后
    • y 复制选中内容
    • d 删除选中内容
    • p 粘贴选中内容
    • 替换 :s/old/new/g

复制

  • y 选中区域
  • yy 复制一行
  • 10yy 复制当前行之后10行
  • y$ 复制到行尾
  • y0 复制到行首
  • :1,10y 复制1-10行

插入

  • i 在光标前插入
  • I 在行首插入
  • a 在光标后插入
  • A 在行尾插入
  • o 在当前行下方插入新行
  • O 在当前行上方插入新行

粘贴

  • p 粘贴到光标后
  • P 粘贴到光标前

剪切

  • x 剪切当前字符
  • d 剪切一行
  • D 剪切到行尾
  • d0 剪切到行首

跳转

  • 42G 跳转到42行
  • gg 第一行
  • G 最后一行
  • 0 行首
  • $ 行尾

移动

  • :n1,n2 m n3 将n1行到n2行之间的内容移动至到第n3行下
  • :n1,n2 m . 将n1行到n2行之间的内容移动至到当前行下
  • :n1,n2 co n3 将n1行到n2行之间的内容复制至到第n3行下

替换

  • r 替换当前字符
  • R 替换当前字符到行尾
  • ctrl + a 数字自增
  • ctrl + x 数字自减
  • :s/old/new/g 替换当前行的old为new
  • :1,10s/old/new/g 替换1-10行的old为new
  • :%s/old/new/g 替换全文的old为new

操作

显示

  • 显示所有字符,包括空白字符
    • ^I 表示制表符
    • $ 表示行末换行符
:set list
# cat
# mac 下 cat -vet file.txt
cat -A file.txt

删除重复的行

:sort
:g/^\(.\+\)$\n\1/d

# awk 去重
# 整行重复
awk '!seen[$0]++' file.txt >uniq.txt
# 根据某一个列去重,根据\t分割
awk -F '\t' '!seen[$1]++' file.txt >uniq.txt