- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
一入编程深似海,从此节操是路人.
前段时间由于业务场景需求 ,不得不近一步学习 vim 使用方法, 提高工作效率 ,就总结了一些常用快捷键使用方法。满足一般需求,掌握基本增、删、改、查就可以了,近一步学习可以了解多屏操作和宏的使用以及自定义插件功能.
Linux发行版服务器基本上是已经配置好 vi 或者 vim,可以使用进行练习,也可以下载vim客户端(支持多个平台:Linux、macOS、Windows)软件进行练习,当然还使用git bash一样可以进行练习。目前主流IDE工具,基本上是支持安装vim插件,开启插件支持vim相关功能。例如:VSCode、IntelliJ IDEA(社区版与旗舰版均支持).
展示一下Windows平台下的vim以及gvim:
vim:在字符界面进行使用,可以看到初次进入会显示版本信息、维护人以及一些帮助命令.
GVIM:其实是GUI VIM,带有图形操作界面,便于桌面客户端使用.
VSCode使用vim插件,简单介绍一下 。
ctrl + shift + p:快速掉出命令行工具,键入vim找到Toggle Vim Mode 。
掌握常用快捷键提高日常工作效率,某些快捷键并不适用Windows terminal.
tips :Windows terminal快速跳转,使用ctrl + 左右方向键进行跳转.
vim官网: https://www.vim.org/ 。
开源仓库: https://github.com/vim/vim 。
插件查找: https://vimawesome.com/ 。
使用VimAwesome检索自己需要的插件,基本上每个插件列出了源地址。通常个人习惯从github上克隆,比较方便.
唯有多练才能熟练,善用自带帮助文档,如下列举最基本帮助文档以及分屏操作获取方式。 注意 :使用格式为英文输入法下的冒号加上help,使用命令亦是如此.
:help
:help vs
:help sp
插入(编辑)模式 :a i o。插入模式姿势也很多啊,标准姿势 i ,高难度姿势 a、o.
a:节奏插,在当前字符光标前一个字符插入 。
i:慢插,当前光标位置插入.
o:快插,快速在前一行下方插入一行空白行 。
快速终止 (进入插入模式),等价于ESC退出编辑模式进入normal模式 。
ctrl + [ 。
ctrl + c 。
养成使用 hjkl 按键替代方向键进行上下左右移动,提高操作效率.
normal模式 。
快速移动 :按住快捷键 h j k l 。
单词切换 。
搜索移动 (行间) 。
水平移动 。
页面快速移动 。
更多用法,可以参考 。
:help g
vi:选择多个字符,等同于shift + v:选择当前行,使用G选择余下行.
normal模式下使用 。
删除 。
新增 。
修改 。
恢复 。
搜索替换 。
normal模式 。
多文件操作,准备多个文件用于测试 。
预先准备多个测试文件,使用vim或者touch命令都行 。
vim test_a.txt 。
this is test_a file
# test a
复制多个文件用于测试:
cp test_a.txt test_b.txt;cp test_a.txt test_c.txt
开始测试,依次输入如下命令:
使用 :e 进入编辑模式,不退出当前会话同时编辑多个文件,:ls 查看当前会话缓存文件,:bprevious 查看之前编辑过的文件.
多屏操作 。
水平分割效果展示 。
垂直分割效果展示 。
更多用法,参考帮助文档 。
:help vs
:help sp
多个标签页 。
更多用法,参考帮助文档 。
:help tabnew
:help tabnext
复制粘贴 。
示例:如果复制一大段内容,可以结合快捷键shift + v 配合 y复制,使用 p 粘贴内容.
打开了多个分屏或者标签页,如何一次性关闭?使用 :qa 命令关闭全部,返回当前终端.
normal模式 。
vim宏 。
常用补全 。
补全如果没生效,需要配置相应的插件.
使用vim相关插件,修改配色方案 。
以Java类为示例进行说明,编辑Java代码Hello world 。
vim Hello.java 。
class Hello{
public static void main(String args[]){
System.out.println("Hello cangls");
}
}
克隆hybrid配色方案 。
git clone https://github.com/w0ng/vim-hybrid.git
创建文键目录 。
mkdir -p .vim/colors
复制hybrid.vim到.vim/colors目录中 。
cp vim-hybrid/colors/hybrid.vim .vim/colors
编辑配色方案 。
vim Hello.java
:colorscheme hybrid
修改配色方案永久生效,设置 background=dark 为暗色系,默认为light浅色系,默认设置显示行号 set number 。
vim .vimrc 。
set background=dark
colorscheme hybrid
set number
恢复默认配色 。
:colorscheme default
初次使用,插件不在多,在于对你的操作有所提升。可以一步步尝试安装插件,对比哪些对你的日常工作有帮助.
如果当前用户根目录没有.vimrc 文件,则新增.
Windows平台需要在当前用户新增 .vimrc 文件.
vim ~\.vimrc
Linux平台一样需要新增 .vimrc 。
vim ~/.vimrc
加入如下内容即可安装插件:
set number
call plug#begin()
Plug 'preservim/nerdtree'
Plug 'preservim/tagbar'
call plug#end()
插件安装命令:
:PlugInstall
插件安装后,重启vim即可生效.
安装插件效果展示,最左侧是nerdtree效果,最右侧是tagbar效果.
vim与Tmux 可以在Linux服务器上安装tmux配合vim使用,效果更加.
Linux发行版(centos9-stream)安装tmux 。
[root@Centos9-Stream ~]# yum list | grep tmuxtmux.x86_64 3.2a-4.el9 baseos[root@Centos9-Stream ~]# yum -y install tmux[root@Centos9-Stream ~]# rpm -qa | grep tmuxtmux-3.2a-4.el9.x86_64
安装后初步使用:
[root@Centos9-Stream ~]# tmux ls0: 1 windows (created Sun Feb 26 15:42:19 2023) (attached)
默认进入tmux,使用tab键可以提示相关命令,使用exit退出tmux.
IDE与vim 。
文初演示了VSCode使用vim插件,此处展示一下STS4使用vim插件:
01、STS4启动界面 。
02、顶部菜单栏找到help,打开 Eclipse Marketplace 。
03、搜索vim并安装 。
04、重启开发工具STS4,初始化界面效果 。
vim与neovim 与时俱进,竞争产出新特性。 https://github.com/neovim/neovim 。
站在巨人的肩膀上,打造炫酷的vim SpaceVim: https://github.com/SpaceVim/SpaceVim 。
个人收藏一些vim相关插件仓库地址: https://github.com/stars/cnwangk/lists/vim 。
你还可以通过 vimawesome 寻找vim插件: https://vimawesome.com 。
最后此篇关于vim入门实战的文章就讲到这里了,如果你想了解更多关于vim入门实战的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
实战-行业攻防应急响应 简介: 服务器场景操作系统 Ubuntu 服务器账号密码:root/security123 分析流量包在/home/security/security.pcap 相
背景 最近公司将我们之前使用的链路工具切换为了 OpenTelemetry. 我们的技术栈是: OTLP C
一 同一类的方法都用 synchronized 修饰 1 代码 package concurrent; import java.util.concurrent.TimeUnit; public c
一 简单例子 1 代码 package concurrent.threadlocal; /** * ThreadLocal测试 * * @author cakin */ public class T
1. 问题背景 问题发生在快递分拣的流程中,我尽可能将业务背景简化,让大家只关注并发问题本身。 分拣业务针对每个快递包裹都会生成一个任务,我们称它为 task。task 中有两个字段需要
实战环境 elastic search 8.5.0 + kibna 8.5.0 + springboot 3.0.2 + spring data elasticsearch 5.0.2 +
Win10下yolov8 tensorrt模型加速部署【实战】 TensorRT-Alpha 基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、
yolov8 tensorrt模型加速部署【实战】 TensorRT-Alpha 基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、linux,
目录如下: 为什么需要自定义授权类型? 前面介绍OAuth2.0的基础知识点时介绍过支持的4种授权类型,分别如下: 授权码模式 简化模式 客户端模式 密码模式
今天这篇文章介绍一下如何在修改密码、修改权限、注销等场景下使JWT失效。 文章的目录如下: 解决方案 JWT最大的一个优势在于它是无状态的,自身包含了认证鉴权所需要的所有信息,服务器端
前言 大家好,我是捡田螺的小男孩。(求个星标置顶) 我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数
前言 大家好,我是捡田螺的小男孩。 平时我们写代码呢,多数情况都是流水线式写代码,基本就可以实现业务逻辑了。如何在写代码中找到乐趣呢,我觉得,最好的方式就是:使用设计模式优化自己
我们先讲一些arm汇编的基础知识。(我们以armv7为例,最新iphone5s上的64位暂不讨论) 基础知识部分: 首先你介绍一下寄存器: r0-r3:用于函数参数及返回值的传递 r4-r6
一 同一类的静态方法都用 synchronized 修饰 1 代码 package concurrent; import java.util.concurrent.TimeUnit; public
DRF快速写五个接口,比你用手也快··· 实战-DRF快速写接口 开发环境 Python3.6 Pycharm专业版2021.2.3 Sqlite3 Django 2.2 djangorestfram
一 添加依赖 org.apache.thrift libthrift 0.11.0 二 编写 IDL 通过 IDL(.thrift 文件)定义数据结构、异常和接口等数据,供各种编程语言使用 nam
我正在阅读 Redis in action e-book关于semaphores的章节.这是使用redis实现信号量的python代码 def acquire_semaphore(conn, semn
自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造。 目录 按钮设置圆角
师父布置的任务,让我写一个服务练练手,搞清楚socket的原理和过程后跑了一个小demo,很有成就感,代码内容也比较清晰易懂,很有教育启发意义。 代码 ?
? 1 2
我是一名优秀的程序员,十分优秀!