\+文件尾没有newline如何修改字符集?

  • 字符串使用单引号,除非是为了避免转义。

  • var 声明,每个声明占一行。

  • 用括号包裹条件中的赋值表达式。这是为了清楚的表明它是一个赋值表达式 (=),而不是一个等式 (===) 的误写。

  • 单行语句块的内侧要有空格。

  • 变量和函数的名字使用 camelCase 格式。

  • 逗号必须放在当前行的末尾。

  • . 应当与属性同行。

  • 函数名字和调用括号之间没有空格。

  • 键名和键值之间要有空格。

  • 构造函数的名字以大写字母开始。

  • 没有参数的构造函数在调用时必须有括号。

  • 使用对象字面量,不使用对象构造函数。

  • 在条件句中不要使用常量,循环语句除外。

  • 正则表达式不要使用控制字符。

  • class 定义无重复成员。

  • 对象字面量无重复键名。

  • 每个模块只使用一个 import 语句。

  • 正则表达式无空的字符组。

  • 解构赋值不使用空的 pattern。

  • catch 语句中不要对错误对象重新赋值。

  • 不使用非必要的布尔值转换。

  • 函数表达式不使用非必要的包裹括号。

  • 浮点数应包含整数和小数。

  • 不给声明过的函数重新赋值。

  • 不给只读的全局变量重新赋值。

  • 不在嵌套语句中使用函数声明。

  • RegExp 构造器不使用非法的正则表达式字符串。

  • label 不使用作用域内变量的名字。

  • 不使用非必要的嵌套语句块。

  • 缩进不混用空格和制表符。

  • 不使用多个连续空格,缩进除外。

  • 如果不是赋值则不使用 new

  • 不使用原始类型的包装对象。

  • 全局对象的属性不用于函数调用。

  • 字符串不使用八进制转义。

  • 正则表达式中不使用多个连续空白。

  • 在 return 语句中赋值表达式要用括号包裹。

  • 不将变量赋值给它自身。

  • 不将变量跟它自身相比。

  • 普通字符串不要包含模板字符串占位符。

  • 循环语句要更新循环变量。

  • 简单的存在赋值不使用三元操作符。

  • 对象属性的换行应一致。

  • 语句块内部首尾无空行。

  • 展开操作符后面无空格。

  • 分号后面要有一个空格,前面无空格。

  • 语句块前面要有一个空格。

  • 函数参数列表括号内侧无空格。

  • 一元操作符后面要有一个空格。

  • 注释符号后面要有空白。

  • 模板字符串大括号内侧无空格。

  • 立即调用函数 (IIFEs) 必须用括号包裹。

  • 不使用 Yoda 式条件句比较。

  • 不以 ([, “` 开始行。这是省略分号时唯一的陷阱。standard 会保护你不落入陷阱。

提示:如果你经常这样写代码,你可能是过于聪明了。

不鼓励过于聪明的简写,表达式应尽可能清晰且容易阅读:

}

0 跳到行首(是数字零,不是字母O),效用等同于 <Home> 键
^ 跳到从行首开始第一个非空白字符
nG 跳到第n行,比如 10G 是移动到第十行
15| 移动到当前行的 15列
w 跳到下一个单词开头 (word: 标点或空格分隔的单词)
W 跳到下一个单词开头 (WORD: 空格分隔的单词)
e 跳到下一个单词尾部 (word: 标点或空格分隔的单词)
E 跳到下一个单词尾部 (WORD: 空格分隔的单词)
b 上一个单词头 (word: 标点或空格分隔的单词)
B 上一个单词头 (WORD: 空格分隔的单词)
) 向前移动一个句子(句号分隔)
( 向后移动一个句子(句号分隔)
} 向前移动一个段落(空行分隔)
{ 向后移动一个段落(空行分隔)
+ 移动到下一行首个非空字符(同回车键)
- 移动到上一行首个非空字符
fx 跳转到下一个为 x 的字符,2f/ 可以找到第二个斜杆
Fx 跳转到上一个为 x 的字符
tx 跳转到下一个为 x 的字符前
Tx 跳转到上一个为 x 的字符前
; 跳到下一个 f/t 搜索的结果
, 跳到上一个 f/t 搜索的结果
gj 光标下移一行(忽略自动换行)
gk 光标上移一行(忽略自动换行)

i 在光标处进入插入模式
I 在行首进入插入模式
a 在光标后进入插入模式
A 在行尾进入插入模式
o 在下一行插入新行并进入插入模式
O 在上一行插入新行并进入插入模式
gi 进入到上一次插入模式的位置
CTRL-[ 退出插入模式(同 ESC 等价,但更顺手)
CTRL-O 临时退出插入模式,执行单条命令又返回插入模式
CTRL-\ CTRL-O 临时退出插入模式(光标保持),执行单条命令又返回插入模式
CTRL-R 0 插入寄存器(内部 0号剪贴板)内容,CTRL-R 后可跟寄存器名
CTRL-R " 插入匿名寄存器内容,相当于插入模式下 p粘贴
CTRL-R = 插入表达式计算结果,等号后面跟表达式
CTRL-R : 插入上一次命令行命令
CTRL-R / 插入上一次搜索的关键字
CTRL-U 删除当前行所有字符

R 进入替换模式,直至 ESC 离开
s 替换字符(删除光标处字符,并进入插入模式,前可接数量)
S 替换行(删除当前行,并进入插入模式,前可接数量)
cc 改写当前行(删除当前行并进入插入模式),同 S
cw 改写光标开始处的当前单词
ciw 改写光标所处的单词
caw 改写光标所处的单词,并且包括前后空格(如果有的话)
c^ 改写到行首(第一个非零字符)
C 改写到行尾(同c$)
ci" 改写双引号中的内容
ci' 改写单引号中的内容
cib 改写小括号中的内容
cab 改写小括号中的内容(包含小括号本身)
ci) 改写小括号中的内容
ci] 改写中括号中内容
ciB 改写大括号中内容
caB 改写大括号中的内容(包含大括号本身)
ci} 改写大括号中内容
c2w 改写下两个单词
ct( 改写到小括号前
x 删除当前字符,前面可以接数字,3x代表删除三个字符
d^ 删除到行首(第一个非零字符)
D 删除到行末(同 d$)
diw 删除光标所处的单词
daw 删除光标所处的单词,并包含前后空格(如果有的话)
di" 删除双引号中的内容
di' 删除单引号中的内容
dib 删除小括号中的内容
di) 删除小括号中的内容
dab 删除小括号内的内容(包含小括号本身)
di] 删除中括号中内容
diB 删除大括号中内容
di} 删除大括号中内容
daB 删除大括号内的内容(包含大括号本身)
d2w 删除下两个单词
dt( 删除到小括号前
dgg 删除到文件头部
g~iw 替换当前单词的大小写
gUiw 将单词转成大写
guiw 将当前单词转成小写

y$ 复制当前位置到本行结束的内容
Y 复制当前行,同 yy
3yy 复制光标下三行内容
v0 选中当前位置到行首
v$ 选中当前位置到行末
vib 选中小括号内的东西
vi) 选中小括号内的东西
vi] 选中中括号内的东西
viB 选中大括号内的东西
vi} 选中大括号内的东西
vis 选中句子中的东西
vab 选中小括号内的东西(包含小括号本身)
va) 选中小括号内的东西(包含小括号本身)
va] 选中中括号内的东西(包含中括号本身)
vaB 选中大括号内的东西(包含大括号本身)
va} 选中大括号内的东西(包含大括号本身)
gv 重新选择上一次选中的文字
:set paste 允许粘贴模式(避免粘贴时自动缩进影响格式)
"?yy 复制当前行到寄存器 ? ,问号代表 0-9 的寄存器名称
"?d3j 删除光标下三行内容,并放到寄存器 ? ,问号代表 0-9 的寄存器名称
"?p 将寄存器 ? 的内容粘贴到光标后
"?P 将寄存器 ? 的内容粘贴到光标前
ddp 交换两行内容:先删除当前行复制到寄存器,并粘贴
"_[command] 使用[command]删除内容,并且不进行复制(不会污染寄存器)

tx 光标位置到字符 x 之前
fx 光标位置到字符 x 之处
iw 整个单词(不包括分隔符)
aw 整个单词(包括分隔符)
iW 整个 WORD(不包括分隔符)
aW 整个 WORD(包括分隔符)
is 整个句子(不包括分隔符)
ab 小括号内(包含小括号本身)
aB 大括号内(包含大括号本身)
a) 小括号内(包含小括号本身)
a] 中括号内(包含中括号本身)
a} 大括号内(包含大括号本身)
a' 单引号内(包含单引号本身)
a" 双引号内(包含双引号本身)
2i) 往外两层小括号内
2a) 往外两层小括号内(包含小括号本身)
2f) 到第二个小括号处
2t) 到第二个小括号前

n 向同一方向执行上一次搜索
N 向相反方向执行上一次搜索
* 向前搜索光标下的单词
:%s/p1/p2/gc 将当前文件中全替换p1为p2,并且每处询问你是否替换

d 删除高亮选中的文字
x 删除高亮选中的文字
c 改写文字,即删除高亮选中的文字并进入插入模式
s 改写文字,即删除高亮选中的文字并进入插入模式
o 跳转到标记区的另外一端
O 跳转到标记块的另外一端
g CTRL-G 显示所选择区域的统计信息

CTRL-O 跳转到上一个位置
CTRL-I 跳转到下一个位置
gd 跳转到局部定义(光标下的单词的定义)
gD 跳转到全局定义(光标下的单词的定义)
gf 打开名称为光标下文件名的文件
[[ 跳转到上一个顶层函数(比如C语言以大括号分隔)
]] 跳转到下一个顶层函数(比如C语言以大括号分隔)
[m 跳转到上一个成员函数
]m 跳转到下一个成员函数
[{ 跳转到上一处未匹配的 {
]} 跳转到下一处未匹配的 }
[( 跳转到上一处未匹配的 (
]) 跳转到下一处未匹配的 )
[c 上一个不同处(diff时)
]c 下一个不同处(diff时)
[/ 跳转到 C注释开头
]/ 跳转到 C注释结尾
`` 回到上次跳转的位置
'' 回到上次跳转的位置
`. 回到上次编辑的位置
'. 回到上次编辑的位置

:r !dir 将 dir 命令的输出捕获并插入到光标后
:new 打开一个新的窗口编辑新文件
:enew 在当前窗口创建新文件
:vnew 在左右切分的新窗口中编辑新文件
:tabnew 在新的标签页中编辑新文件

:bn 切换到下一个缓存
:bp 切换到上一个缓存
:set hidden 设置隐藏模式(未保存的缓存可以被切换走,或者关闭)
:set nohidden 关闭隐藏模式(未保存的缓存不能被切换走,或者关闭)

CTRL-W w 循环切换到下一个窗口
CTRL-W W 循环切换到上一个窗口
CTRL-W p 跳到上一个访问过的窗口
CTRL-W + 增加当前窗口的行高,前面可以加数字
CTRL-W - 减少当前窗口的行高,前面可以加数字
CTRL-W < 减少当前窗口的列宽,前面可以加数字
CTRL-W > 增加当前窗口的列宽,前面可以加数字
CTRL-W H 将当前窗口移动到最左边
CTRL-W J 将当前窗口移动到最下边
CTRL-W K 将当前窗口移动到最上边
CTRL-W L 将当前窗口移动到最右边
CTRL-W f 在新窗口中打开名为光标下文件名的文件
CTRL-W gf 在新标签页中打开名为光标下文件名的文件
CTRL-W T 将当前窗口移到新的标签页中

:tabs 显示所有标签页
:tabc 关闭当前标签页
:tabo 关闭其他标签页
:tabn n 切换到第n个标签页,比如 :tabn 3 切换到第三个标签页
:tablast 切换到最后一个标签页
:tab drop <file> 如果文件已被其他标签页和窗口打开则跳过去,否则新标签打开
:tab split 在新的标签页中打开当前窗口里的文件
:tab ball 将缓存中所有文件用标签页打开
ngt 切换到第n个标签页,比如 2gt 将会切换到第二个标签页

ma 保存当前位置到书签 a ,书签名小写字母为文件内,大写全局
'a 跳转到书签 a所在的行
`a 跳转到书签 a所在位置
`. 跳转到上一次编辑的行
'A 跳转到全文书签 A
[' 跳转到上一个书签
]' 跳转到下一个书签
'< 跳到上次可视模式选择区域的开始
'> 跳到上次可视模式选择区域的结束
:delm! 删除所有缓冲区标签(小写字母), 不能删除文件标签和数字标签

:set ttimeout 允许终端按键检测超时(终端下功能键为一串ESC开头的扫描码)
:set smartcase 智能大小写,默认忽略大小写,除非搜索内容里包含大写字母
:set list 设置显示制表符和换行符
:set paste 进入粘贴模式(粘贴时禁用缩进等影响格式的东西)
:set all 列出所有选项设置情况

:h summary 帮助你更好的使用内置帮助系统
- 永远不要用 CTRL-C 代替 <ESC> 完全不同的含义,容易错误中断运行的后台脚本
- 在行内左右移动光标时,多使用w b e或W B E,而不是h l或方向键,这样会快很多
- 自己要善于总结新技巧,比如移动到行首非空字符时用 0w 命令比 ^ 命令更容易输入
- 在空白行使用 dip 命令可以删除所有临近的空白行,viw 可以选择连续空白
- 用 v 命令选择文本时,可以用 o 掉头选择,有时很有用
- 写文章时,可以写一段代码块,然后选中后执行 :!python 代码块就会被替换成结果
- 搜索时可以用 CTRL-R CTRL-W 插入光标下的单词,命令模式也能这么用
- 映射按键时,应该默认使用 noremap ,只有特别需要的时候使用 map
- 当你觉得做某事很低效时,你应该停下来,u u u u 然后思考正确的高效方式来完成
- 用 y复制文本后,命令模式中 CTRL-R 然后按双引号 0 可以插入之前复制内容












 
 
 
 
 





}

2、配置用户环境变量-path

1、在文件结尾回车即可

一是为了每一行都要以换行结束。二是,因为行尾的\表示连接下一行,如果一个文件最后一行行尾有\,那么,紧跟它也被包含进来的下一个源文件的第一行就会被连接!而如果一个文件以一个空行结束就会避免这种情况的发生。

}

我要回帖

更多关于 如何修改字符集 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信