当前位置: 首页 > news >正文

WSL 安装 Debian 12 后,Linux 如何安装 vim ?

在 WSL 的 Debian 12 中安装 Vim 非常简单,只需使用 apt 包管理器即可。以下是详细步骤:


1. 更新软件包列表

首先打开终端,确保系统包列表是最新的:

sudo apt update

2. 安装 Vim

直接通过 apt 安装 Vim:

sudo apt install vim -y
  • -y 参数表示自动确认安装,避免手动输入确认。

3. 验证安装

安装完成后,检查 Vim 版本以确认安装成功:

vim --version

如果看到版本信息(如 VIM - Vi IMproved 9.0),则说明安装成功。


4. 使用 Vim

直接输入 vim 命令即可启动编辑器:

vim 文件名
  • 基础操作
    • i 进入编辑模式。
    • Esc 退出编辑模式。
    • 输入 :wq 保存并退出,:q! 不保存强制退出。

可能出现的问题

  1. 安装失败

    • 检查网络连接(WSL 需依赖 Windows 网络)。
    • 确保已正确执行 sudo apt update
  2. 命令未找到

    • 确认安装包名正确,Debian 中包名为 vim,而非 vim-tiny(精简版)。

通过以上步骤,你可以在 Debian 12 中快速安装并使用 Vim。


vim 与 vi 有什么不同 ?

vim(Vi IMproved)是 vi 的增强版本,两者在功能和用户体验上有显著区别。以下是具体差异:


1. 历史背景

  • vi
    诞生于 1976 年(Bill Joy 开发),是 Unix 系统的经典文本编辑器,功能简单但高效。
  • vim
    由 Bram Moolenaar 于 1991 年开发,目标是改进 vi,提供更丰富的功能,同时保持兼容性。

2. 功能差异

功能vivim
语法高亮❌ 不支持✅ 支持多种编程语言的语法高亮
多级撤销(Undo)❌ 仅支持单步撤销✅ 支持无限次撤销
插件系统❌ 不支持✅ 可通过插件扩展功能(如代码补全、版本控制)
多窗口/分屏❌ 不支持✅ 支持横向/纵向分屏编辑
脚本支持❌ 不支持复杂脚本✅ 支持 Vimscript/Lua/Python 等脚本语言
搜索高亮❌ 无✅ 可高亮所有匹配项
图形界面❌ 纯命令行✅ 支持 GUI 版本(如 gvim

3. 兼容性

  • vim 几乎完全兼容 vi 的语法和操作(例如 h/j/k/l 移动、:wq 保存退出等)。
  • 在多数 Linux 系统中,vi 命令实际指向 vim 的简化版(如 vim.tiny),可通过以下命令验证:
    ls -l /usr/bin/vi   # 通常显示链接到 vim.tiny 或类似路径
    

4. 用户界面

  • vi
    界面简洁,适合快速编辑小文件,但对复杂任务(如编程)不够友好。
  • vim
    提供状态栏、行号显示、错误提示等,且支持鼠标操作(需在配置中启用 set mouse=a)。

实际使用场景

  • 推荐 vi 的场景
    • 紧急修复系统文件(例如在最小化安装的服务器环境中)。
  • 推荐 vim 的场景
    • 编程、编辑配置文件、需要语法高亮和多窗口操作的任务。
    • 自定义配置(如通过 ~/.vimrc 文件优化体验)。

总结

  • vi:轻量、快速,适合基础编辑。
  • vim:功能全面,适合开发者和进阶用户。
  • 建议:在支持 vim 的环境中优先使用它,通过 vimtutor 命令学习其强大功能。

vim 如何配置 编辑 python ?

以下是针对 Python 开发的 Vim 配置指南,涵盖语法高亮、自动补全、代码检查等常用功能:


1. 基础配置(.vimrc 文件)

在用户目录下创建或编辑 Vim 配置文件:

vim ~/.vimrc

添加以下基础配置:

" 通用设置
set number              " 显示行号
set tabstop=4           " Tab 显示为 4 空格
set shiftwidth=4        " 自动缩进时每层缩进 4 空格
set expandtab           " 将 Tab 转换为空格(符合 PEP8)
syntax on               " 开启语法高亮
filetype plugin indent on " 根据文件类型加载插件和缩进规则" Python 专用设置
autocmd FileType python setlocal foldmethod=indent  " 按缩进折叠代码
autocmd FileType python setlocal colorcolumn=80     " 显示第80列参考线(PEP8)

2. 插件管理(推荐使用 Vim-Plug)

(1) 安装插件管理器 Vim-Plug

在终端执行:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
(2) 在 .vimrc 中添加插件

~/.vimrc 中添加以下内容:

call plug#begin('~/.vim/plugged')" Python 开发必备插件
Plug 'davidhalter/jedi-vim'            " 自动补全和函数跳转
Plug 'vim-python/python-syntax'        " 增强的 Python 语法高亮
Plug 'Vimjas/vim-python-pep8-indent'   " 符合 PEP8 的缩进规则
Plug 'dense-analysis/ale'              " 实时语法检查(支持 flake8/pylint)
Plug 'Yggdroot/indentLine'             " 显示缩进参考线call plug#end()
(3) 安装插件

重启 Vim 后执行:

:PlugInstall

3. 关键插件配置

(1) Jedi-vim(自动补全)

.vimrc 中添加:

let g:jedi#popup_on_dot = 0           " 输入 `.` 时不自动弹出补全
let g:jedi#use_tabs_not_buffers = 1    " 使用标签页跳转定义
(2) ALE(语法检查)

配置检查工具(如 flake8mypy):

let g:ale_linters = {'python': ['flake8', 'mypy']}
let g:ale_fixers = {'python': ['black']}  " 保存时自动用 black 格式化
let g:ale_fix_on_save = 1

确保已安装工具:

pip install flake8 mypy black
(3) Python 语法高亮增强

.vimrc 中启用增强高亮:

let g:python_highlight_all = 1

4. 虚拟环境支持

若使用虚拟环境(如 venvconda),在 .vimrc 中指定 Python 解释器路径:

let g:python3_host_prog = '/path/to/your/venv/bin/python3'

5. 调试支持(可选)

(1) 集成 pdb 调试

在代码中插入断点:

import pdb; pdb.set_trace()

在 Vim 中使用 :!python % 运行脚本,进入调试模式。

(2) 使用 vim-terminal

安装终端插件(如 vim-terminal):

Plug 'vimlab/split-term.vim'  " 添加至插件列表

在 Vim 中通过 :Term 打开终端,直接运行 Python 代码。


6. 学习资源

  • 在 Vim 内学习基础操作:终端输入 vimtutor
  • Jedi-vim 文档::help jedi-vim
  • ALE 配置::help ale

通过以上配置,你的 Vim 将具备现代 Python IDE 的核心功能!

相关文章:

  • AI时代,如何实现人机共舞?
  • 计算机网络防火墙技术介绍:包过滤、应用代理网关、状态监测
  • c# 数据结构 树篇 入门树与二叉树的一切
  • 最大子段和(递推)
  • 物理:人的记忆是由基本粒子构成的吗?
  • 【AI News | 20250513】每日AI进展
  • Ubuntu 22.04搭建OpenStreeMap地址解析服务(保姆级教程)
  • 跨境电商定价革命:亚马逊“逆向提价“策略背后的价值重构逻辑
  • Readiris PDF:高效文档管理与OCR识别工具
  • CMake基础
  • Linux上的rm和srm 命令
  • Springboot实现重试机制
  • ebook2audiobook开源程序使用动态 AI 模型和语音克隆将电子书转换为带有章节和元数据的有声读物。支持 1,107+ 种语言
  • 从新手到高手:全面解析 AI 时代的「魔法咒语」——Prompt
  • 鸿蒙 PC 发布之后,想在技术上聊聊它的未来可能
  • talk-linux 不同用户之间终端通信
  • 攻防靶场——没有Web怎么打
  • 关于maven的依赖下不下来的问题
  • 加速度策略思路
  • WebPageTest 多地域测试
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 中美日内瓦经贸会谈联合声明
  • 名帅大挪移提前开启,意属皇马的阿隆索会是齐达内第二吗
  • A股三大股指低收:银行股再度走强,两市成交11920亿元
  • 夜读丨古代有没有近视眼?
  • 外交部答澎湃:美方攻击抹黑中加关系与合作的卑劣图谋不会得逞