0%

开发工具使用指南-VSCode-Vim

概述

开发工具选择

  • VSCode
  • VIM for linux/Notepad++ for Windows
  • JupyterLab:方便查看结果与展示,用于数据分析;

OUT

  • Notepad++:政治问题 + 打不过 VS Code
  • Sublime:打不过 VS Code
    • 安装 Package Control:tool-install package control
      • 中文化插件:ChineseLocalizations
      • emmet
      • SideBarEnhancements
        • FileDiffs:对比文件

名词解释

编辑器:开发用的编辑代码的工具。如 VS Code、Vim

  • 功能
    • 存储和重新打开脚本
    • 运行代码
    • debug
    • 突出显示语法

编译器解释器:将高级语言翻译成字节码或低级语言的工具,不同的高级语言有不同的编译器。

调试器:Debugger

IDE:Integrated Development Environmen:集成开发环境:将文本编辑器、编译器或解释器、调试器(debugger)等开发工具集合在一起的工具。如 VS、 Python 自带的 IDE:IDLE 等

VSCode

VSCode:牛批的文本/代码编辑器

  • 特点:自定义配置,各种扩展插件,各种文件格式的良好支持,智能提示,调试功能强大,快捷键,体量小,加载快

操作

  • 查看终端历史命令: cat (Get-PSReadlineOption).HistorySavePath

插件

通用

  • ascii tree generator【必备】:markdown # 标题转目录树
    • file-tree-generator:生成的的带图标,图标好丑,OUT
  • emojisense:文档中插入表情,如 😸
  • better comments【必备】:优雅的、增强的注释,可对告警、查询、TODO、高亮等标记进行不同的展示,可自定义样式
  • Chinese:Microsoft:我爱中文
  • Remote - SSH【必备】:Microsoft:远程必备
    • 同步安装
      • Remote - SSH: Editing Configuration Files
      • Remote Explorer
  • Color Highlight【必备】:Sergii N:用于显示 rgb、hex 等表示的颜色
  • highlight-icemode【必备】:ice liu:选中相同的代码时,让高亮显示更加明显
  • Thunder Client:轻量 Rest API Client
  • Transformer【必备】:dakara:排序,去除重复行,Ctrl + shift + P:
    • Transform: Sort Lines
    • Transform: Unique Linew
  • vscode-input-sequence:tomoki1207:序列数字
  • Ctrl + Alt + I 便可以添加文件头,Ctrl + Alt +T 添加函数注释。view-in-browser:html 直接浏览器打开
  • indenticator【必备】:SirTori:

附加功能

  • Drawio:流程图神器
  • Bookmaarks:允许你在工作区中针对不同文件的特定行向代码添加书签
    • 不实用,还是 Ctrl + Shift +F 搜索来的方便,OUT
  • C/C++:Python 牛*
  • Marquee:待办、天气等面板。
    • not chinese,OUT
  • live server:启动具有静态和动态页面的实时重新加载功能的开发本地服务器
  • LeetCode:刷题工具
    • Error:Leet Code extension needs Node.js installed in environment path:OUT
  • Dash:报错,OUT
  • GitLens【必备】:GitKraken:Git 加强,文件历史、行历史
    • Git Graph
    • Git History:可查看 git log 或一个文件的 git 历史、比较不同的分支、commits
  • Office Viewer:Weijan Chen:Markdown Editor
  • vscode-pdf:tomoki1207:pdf 支持
  • YAML【必备】:Red Hat:yaml 支持
  • Even Better TOML:tamasfe:
  • Rainbow CSV【必备】:mechatroner
  • SQLite Viewer【必备】:Florian Klampfer:SQlite 支持
  • SVG Preview【必备】:Simon Siefke:SVG 预览支持
  • Path Intellisense:Christian Kohler:相对路径快速输出必备
  • AutoCorrect:写作纠错,特别是在处理中英文混排时的空格问题,但它尚未支持中英标点符号的自动转换。

Python

  • Python【必备】:Microsoft:包括 IntelliSense (Pylance)、linting、调试、代码导航、代码格式化、重构、变量资源管理器等功能、测试资源管理器等等

    • 对 Python 语言提供丰富的支持,!Python 开发者必备插件
      • 同步安装
        • Pylance
        • Python Debugger
  • autoDocstring - Python Docstring Generator【必备】:Nils Werner:快速生成 docstring

  • Pylance:Microsoft:牛皮,丝滑,jedi OUT

    • 代码补全、参数提示、引用和跳转自动导入、类型检查、类型信息等
    • 不提示 pywin32
  • Python Debugger:Microsoft

  • Python Type Hint:njqdev:为内置类型、预估类型、typing 模块提供类型提示补全

  • linting 工具:分析代码错误

    • pylint:代码静态分析工具,提示代码错误、不符合代码风格标准和潜在问题的代码。可配置。
      • pip install pylint
  • formatting 工具:格式化代码

    • autopep8
      • pip install autopep8
  • mypy:静态类型检测工具,保证变量类型始终如初始定义的那样,而不会因某次赋值将一个列表变成了字符串。

  • prospector: 集成了众多 python 代码检测工具

  • Kite Python Autocomplete:基于机器学习的代码补全,快速、高效,带给我 PyCharm 的智能提示的快感。

    • 自动补全 + 查文档
    • 就体验而言,Tabnine 算个**,Python extension Pack 算个**,Visual Studio IntelliCode 就是个**。
    • BUT,占用太多资源(CPU、内存),现在 VSCode 内置的智能提示已基本够用了,OUT
  • Python Indent:每次换行时解决一些 Python Indentation 的问题

    • 比在 vscode 里直接设置 Format On Type 键入一行后自动格式化该行强
  • Python Preview:展示 Python 中内置变量的值,方便调试

  • Pylance:输入时自动导入包(直接加,不提示),but,导入的是错的…使程序产生不可知、不可控的错误,OUT。

  • AREPL for python:能够在你编写 Python 代码的同时自动实时评估 Python 代码

  • Python Type Hint:Python Type Hint 帮助你在 Python 代码中自动完成类型提示。

  • Python Test Explorer:单元测试必备:允许开发者使用 Test Explorer UI 运行 Python unittest 或 Pytest tests。这个小而方便的工具能够使开发者通过极佳的的用户界面和调试功能从 VS Code 中测试代码

  • OUT:

    • LiveCode for Python:在不运行 Python 代码情况下展示代码中所使用的每一个变量值
      • UnicodeEncodeError: ‘utf-8’ codec can’t encode character ‘\udcac’ in position 193: surrogates not allowed
    • Python Snippets:包含了大量的内置方法,以及 stringlistsetstupledictionaryclass 代码片段,并且还为每个代码段提供至少一个示例。
      • 熟练了,没啥用
    • Sourcery:人工智能编码助手,动态重构建议来提示优化
      • 熟练了,没啥用
    • Python Preview:已不再维护
    • Mintlify Doc Writer:写的 ** 文档
    • Pip Manager:该插件能够很好地帮助我们在 VSCode 编辑器中管理在编写 Python 代码时会用到的第三方扩展。
      • 没有 pip 命令行方便
    • Black Formatter【必备】:Microsoft,现在用ruff了

markdown

  • Markdown all in one【必备】:
  • Markdown Preview Enhanced:预览扩展功能,如 ==高亮==,==高亮==
  • Markdown Image
    • Shift + Alt + V 将剪贴板的图片粘贴进文档
  • Markdown Shortcuts:Markdown 相关的快捷键,可参考 typora 进行快捷键配置
  • Markdown Table Prettifier:对表格源文本美化
  • markdown all in one:偶尔用 VSCode 开一下 markdown,我爱 Typora
  • davidanson.vscode-markdownlint:格式化,
  • office viewer:一进入,这 github 的风格,不错
    • 和 typora 相比还是差了点意思
  • Paste Image:粘贴图像,复制到指定的文件夹
    • 储存在与 md 文档同名,且添加 .assets 后缀标识的文件夹下。${currentFileDir}/${currentFileNameWithoutExt}.assets
      • 不好用,直接复制桌面上的文件,粘贴不了,截图,粘贴出来两个
  • OUT
    • Markdown Editor:主题显示乱七八糟(只适合在浅色的主题下用)按键乱飞,毫无用户体验
  • prettier:markdown 自动格式化,可在中英文字符之间加一个空格
    • markdownlint:没有在中英文字符之间加一个空格的功能
  • pangu-markdown: 将 图片名.jpg 变成了 图片名。jpg,还不能设置,OUT
  • 通义灵码:无法登录:网页,登录上了,页面空白,OUT

前端

可视化时需要基本的网页开发

  • HTML CSS Support :让 html 标签上写 class 智能提示当前项目所支持的样式
  • CSS Peek:HTML 中通过 CSS id 或则 class 来定位到其定义。
  • Stylelint
    Live Server: 做前端开发的时候,我们需要打开浏览器进行预览和调试页面。这个插件就可以实现静态、动态页面的实时预览,保存就能看见页面更新,不需要手动去刷新。

out

  • Rainbow Brackets:为圆括号、方括号和大括号提供彩色的视觉享受
    • *"editor.bracketPairColorization.enabled"*: true:VSCode 已经自带该配置
  • AREPL for python:会在右侧自动写出输出,but,原理是自动运行,代码里的写文件什么的也会自动运行,不确定性太高了,OUT
  • Setting Sync:同步设置与安装插件的工具,shift+alt+u:同步到 github
  • vscode-icons:自带图标已经不错了,减小负载吧,out.
  • todo tree:标签高亮 + 左侧的活动栏快速定位。
    • 系统自身已带 highlights
    • 对变量名为 todo 前缀的会错误提示
  • Auto Close Tag —— 自动闭合 HTML/XML 标签,vscode 已自带该功能
    Auto Rename Tag —— 自动完成另一侧标签的同步修改
  • 格式 fomat
    • prettier
    • beautiry:VSCode 已内置,格式化 json 与自带的效果一样,都很长,prettier 一个一定长度的列表能一行。又短又方便看。
  • better Align:优雅的代码,能够用冒号(:)、赋值(=,+=,-=,*=,/=)和箭头(=>)对齐代码。实际敲代码哪有时间整这个,OUT.
    • 需配置快捷键(默认Alt +A) 或 Ctrl+Shift+p 输入“Align”确认即可,但用下来对字典的直观性变差了(虽然看起来更美观了)2026-05-14
  • bracket select
  • filesize:显示文件大小,意义不大
  • fix json:编写 json 不用打引号了
  • Image preview:光标悬浮在图片路径上时显示图片预览
  • Output Colorizer:输出进行颜色标注
  • KoroFileHeader:OBKoro1:生成文件头部注释和函数注释(感觉可能会比较花token)
  • Path Autocomplete:自动路径补全提示
  • Code Runner:直接运行一段任意代码
  • indent-rainbow:【OUT】缩进颜色,对于 python-indent 的缩进会红色显示,不好。
  • Code Spell Checker:【OUT】对于缩写啥的也报错
  • Resource Monitor:【OUT】关注系统资源使用情况,but,资源使用量的变动会影响我 Coding
  • Partial Diff:文本比较利器,但自带的”选择以进行比较“已经够用了

配色

快捷键

  • 通用操作
    • Ctrl + C:复制
      • 未选中文本时复制当前行
    • Ctrl + V:粘贴
    • Ctrl + Z:撤销
    • Ctrl + Shift + Z:反撤销
    • Shift + Alt + F:格式化
    • Ctrl + /:注释/取消注释
  • 光格操作
    • Ctrl + ← 将光标向左移动一个单词
    • Ctrl + → 将光标向右移动一个单词
    • Ctrl + Alt + ↑, 向上加入一个光标
    • Ctrl + Alt + ↓, 向下加入一个光标
    • Ctrl + Alt + U, 撤销上次光标操作
    • Ctrl + Shift + Enter: 在上方插入行
    • Ctrl + Enter: 在下方插入行
  • 界面移动
    • Ctrl + ↑ 向上移动当前界面
    • Ctrl + → 向下移动当前界面
  • 选中操作
    • Shift + ← 向左选中 / 反选中一个字符
    • Shift + → 向右选中 / 反选中一个字符
    • Ctrl + Shift + ← 向左选中 / 反选中一个单词
    • Ctrl + Shift + → 向右选中 / 反选中一个单词
    • Ctrl + D 当前有选中文本时, 将下一个与其相同的文本加入选中
      • Ctrl + F:全选目标
  • 文本行操作
    • Shift + Alt + ↑ 向上复制当前行
    • Shift + Alt + ↓ 向下复制当前行
    • Alt + ↑ 向上移动当前行
    • Alt + ↓ 向下移动当前行
    • Ctrl + Shift + K:快速删除行
  • 跳转到指定行:Ctrl + G
    ge

卸载

1
2
3
# 删除这两个y
C:\Users\user_name\.vscode # 安装的扩展包
C:\Users\user_name\AppData\Roaming\Code # 个人信息及缓存信息

清理

  • 由于 vscode 每次加载 webview 都会进行缓存, 这个扩展每次会生成 3M 多, 建议定期进行清理, 打开缓存路径删除所有文件.
  • Windows: C:\Users[用户名]\AppData\Roaming\Code\Service Worker\CacheStorage
  • 其他: %appdata%\Roaming\Code\Service Worker\CacheStorage.

配置

  • 不同项目不同配置:在项目根目录下创建 .vscode 文件夹,里面新增 settings.json,其优先级会比软件的全局配置高

中文

在 vscode 中,按住 ctrl+shift+p,在出现的输入框中,输入 Configure Display Language,在弹出的语言中,选中 zh-cn,软件提示重启。点击重启按钮后,中文生效

遇到的问题

  • $_{20191205}$ VSCode 的 jedi 对 pandas 时,慢得一*,慢得直接换 gvim 了,发现配置太麻烦,又回来找解决方案。
    • kite:占用太多资源
    • 重装系统 + 1.43.2 的 VSCode 的提示勉强能够接受了。
  • 彻底卸载
  • 无法在这个大型工作区中监视文件更改,请按照说明来解决此问题

vscode E1101 报错

原因是 requests.codes.ok 是动态被设置的,而 pylint 的推断系统里没有该值,因此触发了 E1101 报错。可以通过配置 generate-members 参数来避免此类报错。在 VSCode 中打开 文件 ->首选项 ->设置,在搜索设置中输入 pylintArgs,把 “python.linting.pylintArgs”: [] 这行复制到右侧用户设置中,并在 [] 中写入 “–generate-members” 即可。

删除空行

VSCode 删除重复的空行

  1. Ctrl+H
  2. 输入 ^\s\n
  3. 选择 使用正则表达式

VSCode 官网下载速度慢

1
2
3
把 az764295.vo.msecnd.net 改为  vscode.cdn.azure.cn
原地址: https://az764295.vo.msecnd.net/stable/2b9aebd5354a3629c3aba0a5f5df49f43d6689f8/VSCodeUserSetup-x64-1.54.3.exe
改为国内 cdn 后: http://vscode.cdn.azure.cn/stable/2b9aebd5354a3629c3aba0a5f5df49f43d6689f8/VSCodeUserSetup-x64-1.54.3.exe

  • 问题:终端使用 Git 时 commit 的中文乱码,其他的正常
  • 解决方案:因为近期更新了系统,需要将 CMD修改成旧控制台
    • Windows + R -> cmd,右键,属性,勾选启用旧版控制台,确认后关闭终端,重启 VSCode 即可

VIM

配置

Windows-Gvim

  • OUT,WSL 下,Gvim 无立足之地
1
2
3
4
5
6
7
# 曾经的Gvim的_vimrc编码配置
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese,cp936
set langmenu=zh_CN.UTF-8 "设置菜单语言
language messages zh_CN.utf-8 "设置提示信息语言

monokai

1
2
3
4
5
6
7
mkdir ~/.vim/colors
git clone https://github.com/sickill/vim-monokai.git
mv vim-monokai/colors/monokai.vim ~/.vim/colors

# vi ~/.vimrc
syntax enable
colorscheme monokai

插件

vim-plug

vim-plug:目前最快插件管理,无论是更新,安装,全都是并发的。

1
2
3
# 安装
wget https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
mv plug.vim ~/.vim/autoload/
1
2
3
4
5
6
# 安装vim-plug报错:Failed connect to raw.githubusercontent.com:443;(拒绝连接)
sudo vi /etc/hosts
# 加入下面的内容
199.232.28.133 raw.githubusercontent.com
# 然后继续下载即可
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
1
2
3
4
5
6
7
8
" 指定其他插件的安装目录
call plug#begin('$VIM/vimfiles/vim-plug')
" Github 中的 用户名/仓库名
Plug 'altercation/vim-colors-solarized'
Plug 'nlknguyen/papercolor-theme'
Plug 'scrooloose/nerdtree'

call plug#end()
1
2
3
4
5
6
vim aa
:PlugInstall 安装所有插件. 注意: 要安装插件, 需要先在 vimrc 中配置插件名称, 然后执行这个安装命令
:PlugClean 移除无用插件. 要移除插件, 需要先在 vimrc 中把要移除的插件名称删掉, 然后执行这个移除命令
:PlugUpdate 升级所有插件
:PlugUpgrade 升级 vim-plug 本身
:PlugStatus 查看插件状态

Vundle

  • 有了号称更好的 vim-plug,Vundle OUT。
1
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
filetype plugin indent on

" auto-pep8
autocmd FileType python noremap <buffer> <F9> :call Autopep8()<CR>
" let Vundle manage Vundle, required
"Plugin 'VundleVim/Vundle.vim'
"Plugin 'scrooloose/nerdtree' "
"Plugin 'davidhalter/jedi-vim'
"Plugin 'scrooloose/syntastic'
"Plugin 'msanders/snipmate.vim'
"Plugin 'mattn/emmet-vim'
"Plugin 'Valloric/YouCompleteMe' "YouCompleteMe 编译比较麻烦,选用
"
" nerdtree
"F2 开启和关闭树"
map <F2> :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
"显示书签"
let NERDTreeShowBookmarks=1
"设置忽略文件类型"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
"窗口大小"
let NERDTreeWinSize=25

" python-mode
let g:pymode_rope = 1
let g:pymode_rope_completion = 1
let g:pymode_rope_completion_bind = '<C-p>' "为了自动补全有效,需要将 set paste 设置不启用
let g:pymode_rope_goto_definition_bind = '<C-c>g'
let g:pymode_python = 'python' " 默认检查 Python2
"Autofix PEP8 errors
nnoremap <leader>f :PymodeLintAuto<CR>

indentLine

nerdtree:文件目录查看,文件树,直观

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Plugin 'scrooloose/nerdtree'

"F2 开启和关闭树"
map <F2> :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
"显示书签"
let NERDTreeShowBookmarks=1
"设置忽略文件类型"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
"窗口大小"
let NERDTreeWinSize=25
" 显示隐藏文件
let NERDTreeShowHidden=1
" NERDTree 大小改为 45 字符宽度, 默认 31
let NERDTreeWinSize=45
" 显示简写的 NERDTree 菜单
let NERDTreeMinimalMenu=1
" 设置箭头样式
let g:NERDTreeDirArrowExpandable='▸'
let g:NERDTreeDirArrowCollapsible='▾'
" 删除文件时自动删除文件对应 buffer
let NERDTreeAutoDeleteBuffer=1
" <leader>h 切换显示
nnoremap <leader>h :NERDTreeToggle<cr>
1
2
3
4
5
6
7
git clone --recursive https://github.com/davidhalter/jedi-vim.git ~/.vim/bundle/jedi-vim
git clone https://github.com/Yggdroot/indentLine ~/.vim/bundle/indentLine
:PluginInstall
:PluginList
:PluginUpdate
:PluginClean

ctrlp.vim:文件的模糊查找

vim-commentary:快速地注释代码

vim-autopip8:格式化 Python

1
2
3
git clone https://github.com/tell-k/vim-autopep8.git ~/.vim/bundle/vim-autopep8.git
Plugin 'tell-k/vim-autopep8' #vimrc 中添加
autocmd FileType python noremap <buffer> <F9> :call Autopep8()<CR> #使用快捷键 F9 autopep8 格式化 pyth

python-mode

1
2
3
4
5
6
7
8
9
10
11
# python-mode
# Plugin 'klen/python-mode' " https://vimawesome.com/plugin/python-mode
git clone https://github.com/klen/python-mode.git ~/.vim/bundle/python-mode

let g:pymode_rope = 1
let g:pymode_rope_completion = 1
let g:pymode_rope_completion_bind = '<C-p>' "为了自动补全有效,需要将 set paste 设置不启用
let g:pymode_rope_goto_definition_bind = '<C-c>g'
let g:pymode_python = 'python' " 默认检查 Python2
"Autofix PEP8 errors
nnoremap <leader>f :PymodeLintAuto<CR>

.vimrc

  • 配置文件写入~/.vimrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
syntax enable
colorscheme monokai

syntax on " 语法高亮
filetype off " required

set nocompatible " 去掉 vi 一致性,避免老板本的 bug

filetype on " 检测文件类型
filetype indent on " 不同文件不同缩进方式
filetype plugin indent on " 自动补全

set shortmess=atI " 启动时的援助乌干达儿童"syntax enable
set nobackup " 不用备份
set noswapfile

set number " 显示行号
set ruler " 状态栏显示当前行号列号
set showmatch " 显示代码匹配,如括号匹配

set tabstop=4 " tab 键的缩进值
set shiftwidth=4 " >>与<<的移动宽度为 4
set softtabstop=4 " 退格键可删 4 个空格

set smartindent " 自动缩进

set incsearch " 及时搜索
set hlsearch " 高亮搜索
set ignorecase " 搜索时忽略大小写
set smartcase " 搜索时尝试 smart
set cursorline " 突出当前行

set showcmd " 状态栏显示正在输入的命令,方便查看
set showmode " 左下角显示当前 vim 模式
set mouse=a " 使用鼠标
set helplang=cn
set encoding=utf-8 " 编码

call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'
Plug '~/.fzf'
call plug#end()

基本操作

打开 vi 时没有 sudo 又想保存时

1
2
# 以普通用户编辑管理员才能写的文件时
:w !sudo tee %

进入 vi

正常模式:按 Esc 进入

1
2
3
4
vi [filename]
vi +/pattern filename # 打开 filename,光标置于第一个与 pattern 匹配的串处
vi -r filenmae # 上次系统崩溃时 vi 的恢复 filename
vi filename1 filename2 # 打开多个文件,依次编辑
  • 退出:
    • :q! 不保存退出
    • :wq 保存后退出
  • 删除:
    • x:删除当前字符
    • dw:删除至当前单词末尾
    • d$:删除至当前行尾
    • dd:删除整行
    • 2dd:删除两行
  • 撤销
    • u:撤销
    • Ctrl + r:取消撤销
  • 复制粘贴剪切
  • 状态
    • <ctrl>+g 显示当前行以及文件信息
  • 查找
    • / 正向查找(n:继续查找,N:相反方向继续查找)
    • ? 逆向查找
    • % 查找配对的 {,[,(
      • :set ic 忽略大小写
    • :set noic 取消忽略大小写
    • :set hls 匹配项高亮显示
    • :set is 显示部分匹配
  • 替换
    • :s/old/new 替换该行第一个匹配串
    • :s/old/new/g 替换全行的匹配串
    • :%s/old/new/g 替换整个文件的匹配串
  • 折叠
    • zc 折叠
    • zC 折叠所有嵌套
    • zo 展开折叠
    • zO 展开所有折叠嵌套
  • 执行外部命令
    • :!shell 执行外部命令

一般模式 -normal 模式

ESC:从其它模式退出,进入移动模式,最好按两下

移动光标

  • 上下左右方向键

  • hjkl:左下上右

  • 0 $:行首 home、行尾 end

  • gg G:文件首行 文件尾行

  • w/W:正向移动到下一个单词开头

  • e:跳到当前词的词尾

    • 2w
  • b/B 反向移动

  • H:光标移至屏幕顶行

  • M:光标移动屏幕中间

  • L:光标移至屏幕尾行

  • {}:上一段、下一段

  • %:对应括号

  • 跳至指定行 (vi 命令模式下使用)

    • n+ //向下跳 n 行
    • n- //向上跳 n 行
    • nG //跳到行号为 n 的行
  • Ctrl+o:回到上次的位置

  • Ctrl+f:forward

  • Ctrl+u:upward

  • nG 到第 n 行

    n+space 向后移 n 个字符
    n+enter 向下移 n 行

  • x dd 删除光标下字符,删除光标所在行

  • <ctrl>+o 跳转回之前的位置# <ctrl>+i 返回跳转之前的位置

  • hjkl# 2w 向前移动两个单词# 3e 向前移动到第 3 个单词的末尾# 0 移动到行首# $ 当前行的末尾# gg 文件第一行# G 文件最后一行# 行号 +G 指定行# <ctrl>+o 跳转回之前的位置# <ctrl>+i 返回跳转之前的位置

    2、行内移动(都是小写字母)

    b:跳到当前词的词首,如果光标本身就在当前词的词首,则跳到前一词的词首

    shfit + ^:跳到行首(非空白字符)

    shift + $:跳到行尾

    f 字符:跳到下一个相同字符的位置。之后按; 可以继续跳向下一个相同字符的位置

    shift + f 字符:跳到上一个相同字符的位置。同上,之后按; 可以继续跳向下一个相同字符的位置,只是方向和上面是相反的。

    特别说明:

    f 字符:操作分两步:

    1、按 f

    2、按一个字符

    这样光标会直接跳到当前光标之后对应按的字符的第一个出现位置(好乱),举个例子:

    my name is onlyfu.

    当标在第一个字符 m 上,这时先按 f,再按 o,光标就会跳到 o 的位置。如果按 f 后按 n,光标就会跳到之后出现的第一个 n 的位置,也就是 name 的 n 上,这是如果按;,光标就会跳到第二个 n,也就是 onlyfu 的 n 上,; 可以继续点,如果还有 n 就会继续跳过去。

    shift + f 字符:和 f 字符是一样的,只是是向前跳,而不是向后跳,也就是一个反方向操作。

    当然,还有一些移动的方法,以上的操作已经够用了,这里就不讲了。

    复制/粘贴

shift + g:移到文档最后一行

shift + h:移到当前屏的第一行

shift + m:移到当前屏的中间行

shift + l:移到当前屏的尾行

: 行号:移到对应行号的行

ctrl + d:向下翻页

ctrl + u:向上翻页

ctrl+f 上一页

ctrl+b 下一页

ctrl+d/u:向上/下翻半页

pageup/pagedown 上下翻页

  • . 重复上次操作

复制/粘贴/删除/恢复

  • v 进入可视模式# y 复制# p 粘贴# yy 复制当前行# dd 剪切当前行
  • y:yank
  • p:paste
  • yy:复制光标所在行
  • nyy:当前行 向下 n 行复制到缓冲区
  • y: 行号:复制光标当前行到对应行号之间包括对应行号行,共多行
  • 复制选中内容 :v 进入选择模式,移动光标,按 y 键,复制所有选中内容,并进入移动模式,粘贴
  • yw //复制从光标开始到词尾的字符。
    nyw //复制从光标开始的 n 个单词。
    y^ //复制从光标到行首的内容。 VPS 侦探
    y$ //复制从光标到行尾的内容。
    p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用”ap 进行粘贴。
    P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用”aP 进行粘贴。
  • p:将复制内容粘贴出来。

  • d:delete 行号 d:删除光标所在行及对应行号之间,包括对应行号的所有行,共多行
  • dw:delete word
    • diw:delete inner word
    • daw:delete around word
  • dd:删除光标所在行
  • x :删除当前字符
  • nx :删除从光标开始的 n 个字符
  • ndd //向下删除当前行在内的 n 行
  • u //撤销上一步操作
  • U //撤销对当前行的所有操作

u 用来撤销最后一次操作的命令
U 用来撤销已经撤销的操作

  • dj:删除光标所在行及其下一行,共两行
  • dk:删除光标所在行及其上一行,共两行
  • ndw 或 ndW: 删除光标处开始及其后的 n-1 个字
    do: 删至行首
    d$: 删至行尾
    ndd: 删除当前行及其后 n-1 行
    x 或 X: 删除一个字符,x 删除光标后的,而 X 删除光标前的
    Ctrl+u: 删除输入方式下所输入的文本

删除操作,会同时复制被删除的内容,这样就可以有移动行的操作,比如,想把第 3 行移到第 5 行,那就先删除第 3 行,到第 4 行上按粘贴。

屏幕翻滚类命令

Ctrl+u: 向文件首翻半屏
Ctrl+d: 向文件尾翻半屏
Ctrl+f: 向文件尾翻一屏
Ctrl + b: 向文件首翻一屏
nz: 将第 n 行滚至屏幕顶部,不指定 n 时将当前行滚至屏幕顶部。

命令行模式 Command line

命令行模式(按: 或者/或者?开始)

open\insert\append 进入插入模式 常用 i

: 进入底行模式

  • :w //保存文件
  • :w test.txt
  • :q //退出编辑器,如果文件已修改请使用下面的命令
  • :q! //退出编辑器,且不保存
  • :wq //退出编辑器,且保存文件

:e otherfilename //编辑文件名为 otherfilename 的文件。

替换 (vi 命令模式下使用)

:s/old/new //用 new 替换行中首次出现的 old
:s/old/new/g //用 new 替换行中所有的 old
:n,m s/old/new/g //用 new 替换从 n 到 m 行里所有的 old
:%s/old/new/g //用 new 替换当前文件里所有的 old

:set nu //显示行号
:set nonu //取消显示行号

查 /

/vpser //向光标下搜索 vpser 字符串
?vpser //向光标上搜索 vpser 字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作

:s 替换

:s/p1/p2/g: 将当前行中所有 p1 均用 p2 替代
:n1,n2s/p1/p2/g: 将第 n1 至 n2 行中所有 p1 均用 p2 替代
:g/p1/s//p2/g: 将文件中所有 p1 均用 p2 替换

在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用 Ctrl+w

编辑/插入模式

编辑/插入模式:insert mode:左下角显示 –INSERT–,进行文本编辑

  • i 进入

  • 进入编辑模式
    • iinsert:在光标当前位置前插入
    • aappend:在光标当前位置后插入
    • I:shift + i:append before line:在行首位置插入
    • A:shfit + a:append after line:在行尾位置进入
    • o:open a line below:在光标所在行下方新开一行进入
    • shift + o:open a line above 在光标所在行上方新开一行进入
  • 退出 insert 模式
    • esc:进入命令行模式

底行模式 last line mode

底部的命令模式

    • 保存结果 w
    • q:退出
    • :set nu:列出行号
    • 光标移到某一行
  • / 查找字符

可视/选择模式

可视模式(按 v 进入) 左下角显示 –VISUAL–
替换模式(按 r 或 R 开始) 左下角显示 –REPLACE–

选择模式:正常模式 v, V, <Ctrl>+v,进入。
v:从当前光标开始,移动光标为选中状态,
Ctrl+v:块操作:给多行加上统一的首或尾,

遇到的问题

  • 问题:按下 F1 后,打开了帮助页,无法退出
  • 解决方案:Ctrl + W + Q 退出,或在帮助里 :q,像 vi 编辑文件退出一样

PyCharm

PyCharm

  • VSCode 对于继承于父类的 **kwargs,在子类实例化时,不能自动代码提示,还需要整 TypedDict,laji
  • 1.81.1 之后的版本,卡(可能是对于本地文件索引时卡,而 1.81.1 用了挺久了,都索引上了)

扩展/插件

  • Chinese
  • VSCode Keymap
  • Rainbow Brackets Lite:Rainbow Brackets 收费
  • Color Highlighter

基本设置

  • 外观:
    • 主题:Dark
    • 编辑器配色方案:Monokai
    • 字体:Microsoft YaHei UI
      • 大小:14

black

  • 已集成,配置 black.exe 的路径即可:设置 –> 工具 –> Black –> 执行模式:二进制
1
2
3
4
5
6
[tool.black]  
# 行宽度限制为120个字符
line-length = 120
# 避免将字符串的单引号格式化为双引号
skip-string-normalization = true

PyCharm

扩展

  • Chinese
  • Color Highlighter
  • File Description
    自定义头部注释(与 VSCode 的保持一致)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{

"Description ": "", // 介绍文件的作用、文件的入参、出参。
// 自动提取当前git config中的: 用户名、邮箱
"Author ": "user_name",
"Copyright ": "user_name",
"Date ": "Do not edit", // 文件创建时间(不变)
// LastEditors、LastEditTime、FilePath将会自动更新 如果觉得时间更新的太频繁可以使用throttleTime(默认为1分钟)配置更改更新时间。
// 由于编辑文件就会变更最后编辑时间,多人协作中合并的时候会导致merge
// 可以将时间颗粒度改为周、或者月,这样冲突就减少很多。搜索变更时间格式: dateFormat
"LastEditors ": "user_name", // 文件最后编辑时间
"LastEditTime": "Do not edit", // 文件最后编辑时间
// 输出相对路径,类似: /文件夹名称/src/index.js
"Modified ": "" // 文件在项目中的相对路径 自动更新
// 版权声明 保留文件所有权利 自动替换年份 获取git配置的用户名和邮箱
// 版权声明获取git配置, 与Author字段一致: ${git_name} ${git_email} ${git_name_email}
}
  • Rainbow Brackets Lite
  • Rainbow CSV
  • Translation
  • VSCode Keymap
给博主来一杯卡布奇诺