GVIM

进阶教程:https://coolshell.cn/articles/5426.html

gvim解决utf-8格式乱码问题。

编辑--> 启动设定-->添加如下设置-->重启GVIM

set fileencodings=ucs-bom,utf-8,chinese,cp936,cANSI
cd E:/python_projects --这样的目的是用来设置gvim的启动路径。

set tabstop=4 
set nu!
set guifont=Courier_New:h16 

set ts=4
set expandtab
更多的设置参考https://www.cnblogs.com/shawnlxf/p/6685526.html

 

vim使用教程:

详见: https://www.cnblogs.com/harry335/p/5886405.html  非常好, 分分钟叫你入门

使用V 的可视模式, 复制行,第一行前面会带一个回车。最后一行是不带回车。

dd 剪切一行 2dd 剪切2行 第一行前面会带一个回车。最后一行是不带回车

yy赋值一行, 2yy 赋值两行

vim查找替换

详见:https://www.cnblogs.com/huxinga/p/7942194.html

 

 

 

level 0
x → 删当前光标所在的一个字符。
:wq → 存盘 + 退出 (:w 存盘, :q 退出)   :w 后可以跟文件名
dd → 删除当前行,并把删除的行存到剪贴板里 相当于剪切
p → 粘贴剪贴板
:help <command> → 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。退出帮助需要输入:q

level 1
各种插入模式
i -> 在光标前插入
a → 在光标后插入
o → 在当前行后插入一个新行 小写o
O → 在当前行前插入一个新行  大写o
cw → 替换从光标所在位置后到一个单词结尾的字符

简单的移动光标
0 → 数字零,到行头
^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
$ → 到本行行尾
g_ → 到本行最后一个不是blank字符的位置。
/pattern → 搜索 pattern 的字符串

拷贝/粘贴 p/P都可以,p是表示在当前位置之后,P表示在当前位置之前
p/P -> 粘贴
yy → 拷贝当前行当行于 ddP

Undo/Redo
u → undo
<C-r> → redo


打开/保存/退出/改变文件(Buffer)
:e <path/to/file> → 打开一个文件
:w → 存盘
:saveas <path/to/file> → 另存为 <path/to/file>
:x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)    
    :wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
    :x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。
:bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。 前提你得用另外:e打开另外一个文件。

. → (小数点) 可以重复上一次的命令
N<command> → 重复某个命令N次 光标移动不算在命令中。

2dd → 删除2行
3p → 粘贴文本3次
5o <esc> ->这样就能新增5行。

NG → 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
gg → 到第一行。(陈皓注:相当于1G,或 :1)
G → 到最后一行。
> 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(陈皓注:程序变量)
> 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(陈皓注:程序语句)

% : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)
* 和 #:  匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)


<start position><command><end position>
0y$ 拷贝整行,但是并不能选择最后的回车。
0v$ 选择整行,包括最后的回车
0gU$ 将整行转换成大写
0gu$ 将整行转换成小写。
0d$ 删除整行内容但是保留回车。


在当前行上移动光标: 0 ^ $ f F t T , ;
0 → 到行头
^ → 到本行的第一个非blank字符
$ → 到行尾
g_ → 到本行最后一个不是blank字符的位置。
fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。
t, → 到逗号前的第一个字符。逗号可以变成其它字符。
3fa → 在当前行查找第三个出现的a。
F 和 T → 和 f 和 t 一样,只不过是相反方向。

必杀技:
0yt, 从开复制到第一个,之前。


V是行选择
v是字符选择。
ctrl+v是块选择。


区域选择 <action>a<object> 或 <action>i<object>
action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。
object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。

(map (+) ("foo")) 光标键在第一个 o 的位置

vi" → 会选择 foo.
va" → 会选择 "foo".
vi) → 会选择 "foo".
va) → 会选择("foo").
v2i) → 会选择 map (+) ("foo")
v2a) → 会选择 (map (+) ("foo"))

diw就会删除foo

ctrl + v可视块
前插入要用 I 
后插入用 A
使用esc 来让每行都生效。

块操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]

^ → 到行头
<C-v> → 开始块操作
<C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。

  Ctrl+f 向下翻页(Pagedown)
  Ctrl+b 向上翻页(Pageup)
  Ctrl+d 向下翻半页
  Ctrl+u 向上翻半页

 

如何快速的移动光标

https://harttle.land/2015/11/07/vim-cursor.html

 

替换:

当前行:
:s/foo/bar/g

全文:
:%s/foo/bar/g

选区,在Visual模式下选择区域后输入:,Vim即可自动补全为 :'<,'>。
:'<,'>s/foo/bar/g

5-12行:
:5,12s/foo/bar/g

当前行.与接下来两行+2:
:.,+2s/foo/bar/g

 

 

" 设置默认进行大小写不敏感查找
set ignorecase
" 如果有一个大写字母,则切换到大小写敏感查找
set smartcase 
将上述设置粘贴到你的~/.vimrc,重新打开Vim即可生效

删除

1 删除命令

vi命令

操作键

x

 删除当前光标处的字符

X

 删除光标左边的字符

D

 删除从当前光标到本行末尾的字符

J

 删除两行之间的换行符 (亦可用于合并两行)

dmove

 删除从当前光标到move所给位置的字符

dd

 删除当前行

ex命令

 

:lined

 删除指定行

:line,lined

 删除指定范围内的行

 

2 常用的删除组合命令

说明:操作符命令+位移命令

1      nx                          删除多个字符(n为删除的字符个数)       

2      dw                           删除1个单词

3      d10w                       删除10个单词

4      d10W                      删除10个单词,忽略标点符号。

5      db                           向后删除一个单词

6      d2)                        删除两个句子

7      d5}                           删除5个段落

8      dG 或 :.,$d                删除当前行到编辑缓冲区末尾的所有行

9      dgg 或 d1G 或:1,.d           删除当前行到编辑缓冲区开头的所有行

10    :1,$d 或 :%f                     删除整个编辑缓冲区

11    d/word                             删除从光标所在位置到单词word的所有文本  

12    .,/word/d                   删除从光标所在位置到单词word的所有文本

13    df x                          删除至当前行中x所在的位置

14    d^                            删除至该行的开始处

15  :g/^$/d                删除文件中所有空行

3插入模式中删除操作

^U                         删除当前行

^H                         删除前一个字符

^W                        删除前一个词

4 撤销或重复改变

vi命令:

1      u                        撤销上一命令对编辑缓冲区的修改

2      U                        恢复当前行(即一次撤销对当前行的全部操作)

3      .点号                    重复上一命令对编辑缓冲区的修改

5 恢复删除

语法:"1p(P) 

说明:

1      1为缓冲区的编号。

2      p在当前行的下面插入,P在当前行的上面插入。

 

 

H  移至萤幕顶第一个非空白字元。
M  移至萤幕中间第一个非空白字元。
L  移至萤幕底第一个非空白字元。
这和 PageDown,PageUp 不一样,内文内容并未动,只是游标在动而已。
 n| 移至第 n 个字元(栏)处。注意,要用 Shift 键。n 是从头起
   算的。
:n 移至第 n 行行首。或 nG。
 

特殊的移动
)  移至下一个句子(sentence)首。
(  移至上一个句子(sentence)首。
}  移至下一个段落(paragraph)首。
{  移至上一个段落(paragraph)首。
sentence 是以 . ! ? 为区格。
paragraph 是以空白行为区格。

 

 

vim设置字体的N中方法:

https://www.jianshu.com/p/3310ca7b07a1

 

vim编辑模式下移动光标:

https://www.zhihu.com/question/19643925

 

不生成讨人厌的~文件

https://www.jianshu.com/p/5de863537d99

 

取消高亮的方法:

:noh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值