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

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法

目录

1.简单了解vim

2.vim的模式

2.1命令模式

2.2插入模式

2.3底行模式

3.vim各模式下的命令集

3.1正常(命令模式下)

3.1.1光标定位命令

3.1.2 复制粘贴

3.1.3 删除

3.1.4 撤销

3.1.5大小写转换

3.1.6替换

「R」:替换光标所到之处的字符,直到按下「ESC」键为止,这是进入了替换模式,是一个模式(replace)

3.1.7shift=3  高亮查找函数名

3.2 vim插入模式下

3.3vim底行模式下

3.3.2 两个文件对比

vim光标特点:上次退出时光标在那个位置,再次打开光标就在那个位置

3.4 注释模式

4.vim的自主配置

4.1vim的基本配置

4.1.1常用配置

4.1.2 使用插件的方式

4.2自动化配置vim

5.结语


1.简单了解vim

vim本质是linux下的一个编辑器用于写代码,相当于windows中使用文本写代码

vim使用成本比较高,是linux下的一款多模式的编辑器

很早之前使用的是vi,vim更简单,vim是扩展板的vi, 方便进行简单的使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

我们在windows下使用的vs等等编辑器,不仅仅可以运行C语言代码,也可以运行python/java甚至html,这种集合编译、调试、发布等等将这个项目的生命周期包括新建项目,写代码、编译代码、调试代码、发布项目功能集中的环境就是集成编译、运行、调试、发布于一体的我们叫做集成开发环境。方便用户统一操作。

linux下也有图形化操作,不过目前接触都是指令级别的操作。一个一个工具都是独立的

写代码 -----使用vim

编译代码使用gcc

调试代码使用gdb

维护结构和自动化编译使用make/makefile

当我们正常使用vim打开一个文件的时候某认是无法写入内容的,vim某认打开的是命令模式,刚打开时我们输入的内容都会被当成命令,有些命令无效就不变现,有些命令是切换命令触发就可以编写来,这也是常说的“新手偶然性”。

  • 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
  • $ vim test.c
  • 不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文 字。
  • [正常模式]切换至[插入模式]
  • ①输入a
  • ②输入i
  • ③输入o
  • [插入模式]切换至[正常模式]
  • 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可 以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
  • [正常模式]切换至[末行模式]
  • 「shift + ;」, 其实就是输入「:」
  • 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如: :
  • w (保存当前文件)
  •  : wq (输入「wq」,存盘并退出vim)
  • : q! (输入q!,不存盘强制退出vim)

注意:vim异常退出的环,内容会保存在同名的隐藏文件中

2.vim的模式

一共有12种模式:six BASIC modes和six ADDITIONAL modes.

要查看所有模式:打开vim,底行模式直接输入 :help vim-modes

上面我们已经简单接触了一下vim,现在我们就来看看这个多模式编辑器的多模式:

模式转换图

2.1命令模式

Vim某认打开的时候的模式

当我们正常使用vim打开一个文件的时候某认是无法写入内容的,vim某认打开的是命令模式,刚打开时我们输入的内容都会被当成命令,有些命令无效就不变现,有些命令是切换命令触发就可以编写来,这也是常说的“新手偶然性”。

2.2插入模式

正常模式进入插入模式:

  • 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
  • 从插入模式切换为命令模式 按「ESC」键

2.3底行模式

  • [正常模式]切换至[末行模式]
  • 「shift + ;」, 其实就是输入「:」
  • 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如: :
  • w (保存当前文件)
  •  : wq (输入「wq」,存盘并退出vim)
  • : q! (输入q!,不存盘强制退出vim)
  • 从插入模式切换为命令模式 按「ESC」键

注意:vim异常退出的话(网断了,服务器断联等等),vim会对编辑结果进行保存,内容会保存在同名的隐藏文件中,

此时不能直接打开

出现以下选项:

【o】pen read-only  [E]dit anyway  (R)ecover  (D)elete it  (Q) quit (A)bort

选D过后保存退出就可以正常打开了。(把产生异常的临时文件清理掉),有些代码可能会丢失

3.vim各模式下的命令集

3.1正常(命令模式下)

3.1.1光标定位命令

 vim可以直接用键盘上的光标来上下左右移动,老式键盘是没有上下左右方向键的但正规的vim是用

  • 小写英文字母「h」、「j」、「k」、 「l」,分别控制光标左、下、上、右移一格

  • 按「G」:移动到文章的最后
  • 按「 $ 」:移动到光标所在行的“行尾”
  • 按「^」:移动到光标所在行的“行首”
  • 按「w」:光标跳到下个单词的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「b」:光标回到上个单词的开头
  • 按「#l」:光标移到该行的第#个位置,如:5l,56l 按
  • [gg]:进入到文本开始 按
  • [shift+g]:进入文本末端
  • 【按下一个数字 + shiift +g】光标定位到指定的数字行
  • 按「ctrl」+「b」:屏幕往“后”移动一页
  • 按「ctrl」+「f」:屏幕往“前”移动一页
  • 按「ctrl」+「u」:屏幕往“后”移动半页
  • 按「ctrl」+「d」:屏幕往“前”移动半页

3.1.2 复制粘贴

「yy」:复制光标所在行到缓冲区。

数字+yy  :复制光标往下的数字行

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。

数字+p :实现数字次粘贴,比如5次粘贴

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

3.1.3 删除

「x」:每按一次,删除光标所在位置的一个字符

「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符

「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符

「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符

「dd」:删除光标所在行

「#dd」:从光标所在行开始删除#行

dd hou+p相当于剪切功能

3.1.4 撤销

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回恢复。

「ctrl + r」: 撤销的恢复

3.1.5大小写转换

shift按住不动+~,将光标所在一行小写转大写,也可以大写转小写,按一下可以转换一次。

3.1.6替换

「r」:替换光标所在处的字符。

【#r】:[20r]+v,将光标所在位置后20个字符替换为v.

「R」:替换光标所到之处的字符,直到按下「ESC」键为止,这是进入了替换模式,是一个模式(replace)

esc回到命令模式,在替换模式中输入的字符会替换原有内容,但是如果按删除键会回复原来的内容。

3.1.7shift=3  高亮查找函数名

配合n 下一个

3.2 vim插入模式下

这个模式下就是代码编写,没有过多命令讲解

3.3vim底行模式下

shift+;进入底行模式(但是要在正常模式下)

wq: 保存内容并退出

有时保存退出没有权限无法保存退出,也有可能文件处于特殊状态无法保存退出,比如:

文件正在被别人打开,或者文件对应的拥有者不是操作者或者root写一些配置文件时,W!强制写入

q!强制退出

【:!comand】可以直接跟shell命令

q退出

甚至可以做到不退出vim进行代码的编译和运行

  • 列出行号 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。 跳到文件中的某一行
  • 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, 再回车,就会跳到文章的第15行。
  • 查找字符 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。
  • 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。
  • 保存文件 「w」: 在冒号输入字母「w」就可以将文件保存起来
  • 离开vim 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件

3.3.2 两个文件对比

在底层模式下输入vs 文件名,可以打开另外一个文件

绿色的光标在那个位置操作的就是那个文件。

多窗口级别光标移动:ctrl+ww

vim光标特点:上次退出时光标在那个位置,再次打开光标就在那个位置

vim 文件名+行号

进入viM时光标就在指定行

3.4 注释模式

ctrl + v进入 VISUAL BLOCK模式 可进行批量注释

按住上下就可以批量选中

shift +a = a  输入双斜杠//  在按esc就全部注释掉了

ctrl V +上下选择+d  删除注释

4.vim的自主配置

目前使用的还是原生vim,vim打开时会默认读取用户特定的配置文件。

4.1vim的基本配置

进入自己的家目录下查看所有的隐藏文件

配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下, 通常已经存在一个.vimrc文件,如果不存在,则创建之。 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~ 打开自己目录下的.vimrc文件,执行 vim .vimrc

4.1.1常用配置

设置语法高亮: syntax on

显示行号: set nu

设置缩进的空格数为4: set shiftwidth=4

也可以使用插件进行配置 都要保证上传到了这个指定目录。

这里整理一份基础配置

" 编辑设置
set nu                      " 显示行号 同 number
set tabstop=4               " 设置制表符宽度为4
set softtabstop=4           " 设置软制表符宽度为4
set shiftwidth=4            " 设置缩进的宽度为4
set expandtab               " 制表符扩展为空格
set showmatch               " 输入括号时,自动高亮对应的另一个括号, 各种括号
set ruler                   " 在状态栏显示光标的当前位置(位于哪一行哪一列)
set autoindent              " 设置自动缩进
set cindent                 " 以C语言的方式缩进
"set cursorline              " 突出显示当前行" 字体和主题
"set guifont=Consolas:h15    " 设置字体和字体大小, 得系统有
"colorscheme neodark         " 设置主题为neodark, 前提得有
" 备份还原设置
"set nobackup                " 取消备份文件
"setlocal noswapfile         " 不创建交换文件.swp, 奔溃用, 正常退出会删除
set undofile                 " 生成un~文件, un~文件用来保存撤销历史
set undodir=~/.vim/undodir   " 统一管理undo文件路径  mkdir ~/.vim/undodir -p
"set backup                   " 开启备份文件 filename~
"set backupext=.bak          " 设置备份文件后缀为.bak" 工具环境设置
set showmode                " 在底部显示,当前处于命令模式还是插入模式
set showcmd                 " 命令模式下,显示当前键入的指令, 包括快捷键
set hlsearch                " 高亮显示搜索的字符串
"set t_Co=256                " 启用256色, 不用主题就关了
set noerrorbells            " 出错时不发出响声
set vb t_vb=                " 光标边界响铃关闭
set laststatus=2            " 显示状态栏
set statusline=%F%m%r%h%w\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%Y\ -\ %H:%M\")}  "状态栏信息模板
set backspace=2
" 语法高亮显示
syntax on
syntax enable
" 文件编码配置
set enc=utf-8               " vim内部编码模式,即内存中的编码 同 encoding
set fenc=utf-8              " 保存文件的默认编码, 不会覆盖原编码
set fencs=ucs-bom,utf-8,cp936,gb18030,gb2312,gbk,big5,euc-jp,euc-kr,shift-jis,latin1   "打开文件时的编码猜测列表,按前后优先级顺序 同fileencodings
set termencoding=utf-8      " 屏幕显示最终编码

4.1.2 使用插件的方式

安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来 的plugin下的内容拷贝到~/.vim/plugin 在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1 安装文件浏览器和窗口管理器插件: WinManager 下载winmanager.zip,2.X版本以上的 解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到 ~/.vim/plugin 在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle 然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 你

4.2自动化配置vim

目前只支持 Centos7 x86_64. 

在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 "不推荐" 直接在 root 下执行):

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

卸载方法:

在安装了 VimForCpp 的用户下执行:

bash ~/.VimForCpp/uninstall.sh

5.结语

以上就是关于vim的使用及配置,有些东西不是很具体,大家可以多做扩展

相关文章:

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法

目录 1.简单了解vim 2.vim的模式 2.1命令模式 2.2插入模式 2.3底行模式 3.vim各模式下的命令集 3.1正常(命令模式下) 3.1.1光标定位命令 3.1.2 复制粘贴 3.1.3 删除 3.1.4 撤销 3.1.5大小写转换 3.1.6替换 「R」:替换光标所到之处的字符&…...

基于SpringBoot和Vue的车辆管理系统的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的车辆管理系统的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕&#x1f…...

R折线图(自备)

目录 折线图基础 创建散点和折线图 复杂折现加图例 折线图柱状图 数据处理 进行差异检验 基础绘图折线 基础绘图箱线 进行合并 双轴柱状与折线图 数据 折线图基础 创建散点和折线图 rm(list ls()) opar <-par(no.readonlyTRUE)##自带orange数据集 par(mfrowc…...

web学习笔记(四十五)Node.js

目录 1. Node.js 1.1 什么是Node.js 1.2 为什么要学node.js 1.3 node.js的使用场景 1.4 Node.js 环境的安装 1.5 如何查看自己安装的node.js的版本 1.6 常用终端命令 2. fs 文件系统模块 2.1引入fs核心模块 2.2 读取指定文件的内容 2.3 向文件写入指定内容 2.4 创…...

基于Gabor滤波器的指纹图像识别,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…...

55、Qt/事件机制相关学习20240326

一、代码实现设置闹钟&#xff0c;到时间后语音提醒用户。示意图如下&#xff1a; 代码&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(t…...

Clip Converter - 视频在线下载方法

Clip Converter - 视频在线下载方法 1. Video URL to Download2. Continue3. StartReferences YT to MP4 & MP3 Converter! https://www.clipconverter.cc/ Clip Converter is a free online media conversion application, which allows you to reocord, convert and do…...

【No.19】蓝桥杯简单数论上|模运算|快速幂|GCD|LCM|刷题统计|RSA解密|核桃的数量(C++)

简单数论 模运算 定义&#xff1a;模运算为 a 除以 m 的余数&#xff0c;记为 a mod m&#xff0c;有 a mod m a % m模运算是大数运算中的常用操作。如果一个数太大&#xff0c;无法直接输出&#xff0c;或者不需要直接输出&#xff0c;可以把它取模后&#xff0c;缩小数值再…...

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用&#xff0c;其安全问题也日益凸显。其中&#xff0c;分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施&#xff0c;并提出相应的防护策略。 一、区块链面…...

使用Spark单机版环境

在Spark单机版环境中&#xff0c;可通过多种方式进行实战操作。首先&#xff0c;可使用特定算法或数学软件计算圆周率π&#xff0c;并通过SparkPi工具验证结果。其次&#xff0c;在交互式Scala版或Python版Spark Shell中&#xff0c;可以进行简单的计算、打印九九表等操作&…...

【分布式】——降级熔断限流

降级&熔断&限流 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记仓库&#x1f449;https://github.com/A-BigTree/tree-learning-notes 个人主页&#x1f449;https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点…...

代码随想录刷题笔记 Day 58 | 判断子序列 No.392 | 不同的子序列 No.115

文章目录 Day 5801. 判断子序列&#xff08;No. 392&#xff09;<1> 题目<2> 题解<3> 代码 02. 不同的子序列&#xff08;No. 115&#xff09;<1> 题目<2> 题解<3> 代码 Day 58 01. 判断子序列&#xff08;No. 392&#xff09; 题目链接…...

【C++11】thread线程库

【C11】thread线程库 目录 【C11】thread线程库thread类的简单介绍函数指针lambda表达式常用在线程中 线程函数参数join与detach利用RAII思想来自动回收线程 原子性操作库(atomic)atomic中的load函数&#xff1a;atomic中对变量进行原子操作的一些函数 CAS(Compare-And-Swap)无…...

【OpenStack】创建系统(VM)实例镜像及实例创建方法

【OpenStack】创建系统(VM)实例镜像及实例创建方法 目录 【OpenStack】创建系统(VM)实例镜像及实例创建方法创建计算镜像加载基本镜像预建镜像手动实例创建cloud-init 搭救使用 `cloud-init` 配置启动实例连接到您的新实例为实例分配 Floating IP创建SSH隧道结论推荐超级课程:…...

灵途科技助力家电智能创新

从智能家电到个护健康&#xff0c;科技无时无刻不在刷新我们对智慧生活的认知&#xff0c;我们也从未像今天这样近距离贴近智慧生活的朴素本质——传感技术。灵途科技专注光电感知技术&#xff0c;持续为智能家电客户提供成熟的全方位感知解决方案。步入发展第八年&#xff0c;…...

Flask python :logging日志功能使用

logging日志的使用 一、了解flask日志1.1、Loggers记录器1.2、Handlers 处理器1.3、Formatters 格式化器 二、使用日志2.1、官网上的一个简单的示例2.2、基本配置2.3、具体使用示例2.4、运行 三、写在最后 一、了解flask日志 日志是一种非常重要的工具&#xff0c;可以帮助开发…...

ethers.js:sign(签名)

Signers 在ethers中Signer是以太坊账户的抽象&#xff0c;可以用来签名消息和交易&#xff0c;如将签名的交易发送到以太坊网络以执行状态更改的操作。 npm install ethers5.4.0// 引入 import { ethers } from ethers签名 this.provider new ethers.providers.Web3Provider(…...

使用npm i进行admin依赖安装的时候出现问题

提示&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…...

【Python笔记-FastAPI】定时任务实现(APScheduler)

目录 一、常见触发器 (一) DateTrigger (二) IntervalTrigger (三) CronTrigger (四) CombinationTrigger 二、代码示例 (一) task_scheduler.py (二) client.py 三、调用说明 (一) 注册任务 (二) 查询任务 (三) 删除任务 实现功能: 定时任务注册、修改、删除、查…...

『Apisix入门篇』从零到一掌握Apache APISIX:架构解析与实战指南

&#x1f4e3;读完这篇文章里你能收获到&#xff1a; &#x1f310; 深入Apache APISIX架构&#xff1a; 从Nginx到OpenResty&#xff0c;再到etcd&#xff0c;一站式掌握云原生API网关的构建精髓&#xff0c;领略其层次化设计的魅力。 &#x1f50c; 核心组件全解析&#xff…...

easyExcel大数据量导出oom

easyExcel大数据量导出 异常信息 com.alibaba.excel.exception.ExcelGenerateException: java.lang.OutOfMemoryError: GC overhead limit exceededat com.alibaba.excel.write.ExcelBuilderImpl.fill(ExcelBuilderImpl.java:84)at com.alibaba.excel.ExcelWriter.fill(Excel…...

react native上传二进制图片、视频的方法

react native获取本地图片我用的react-native-image-picker&#xff0c;但是它只能获取图片路径&#xff0c;以及base64的图片&#xff0c;不能获取到binary二进制形式的。 一开始我是让后端改造接口&#xff0c;把原本传binary的改成了base64&#xff0c;可是&#xff0c;躲得…...

JVM之堆

堆的核心概述 一个JVM实例只存在一个堆内存&#xff0c;堆也是内存管理的核心区域。 Java堆区在JVM启动的时候即被创建&#xff0c;其空间大小也就确定了。是JVM管理的最大一块内存空间。 堆内存的大小是可以调节的。 《JVM虚拟机规范》规定&#xff0c;堆可以处于物理上不连…...

R语言实现——网状 Meta 分析

近来年&#xff0c;网状 Meta 分析相关研究不断涌现&#xff0c;此类研究不但能发表在国内各大核心期刊上&#xff0c;还能在SCI期刊甚至医学4大刊上看到其身影。随手在pubmed上面一搜索&#xff0c;就能得到一万多篇相关文献。俨然成为医学文献研究的“大杀器”&#xff01; P…...

Java项目:77 springboot母婴商城

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本课题后端使用SpringBoot Spring Cloud框架&#xff0c;前端采用html&#xff0c;JQuery&#xff0c;JS&#xff0c;DIVCSS技术进行编程&…...

【排序算法】深入解析快速排序(霍尔法三指针法挖坑法优化随机选key中位数法小区间法非递归版本)

文章目录 &#x1f4dd;快速排序&#x1f320;霍尔法&#x1f309;三指针法&#x1f320;挖坑法✏️优化快速排序 &#x1f320;随机选key&#x1f309;三位数取中 &#x1f320;小区间选择走插入&#xff0c;可以减少90%左右的递归&#x1f309; 快速排序改非递归版本&#x1…...

生成微信小程序二维码

首页 -> 统计 可以通过上面二个地方配置&#xff0c;生成小程序的二维码&#xff0c;并且在推广分析里&#xff0c;有详细的分析数据&#xff0c;...

网络编程(1)写一个简单的UDP网络通信程序【回显服务器】,并且实现一个简单的翻译功能

使用 JAVA 自带的api 目录 一、回显服务器 UdpEchoServer 服务器代码 客户端代码 二、翻译功能 UdpDictServer 在UdpDictServer里重写process方法 一、回显服务器 UdpEchoServer /*** 回显服务器* 写一个简单的UDP的客户端/服务器 通信的程序* 这个程序没有啥业务逻辑&am…...

Ansys Speos | Light Expert Group探测器组使用技巧

附件下载 联系工作人员获取附件 概述 相机挡板的设计需要在光路的不同位置同步多个照度图&#xff0c;以尽量减少杂散光。2023R2 Speos提供了一种新的探测器&#xff0c;用于高阶杂散光分析&#xff0c;可以同时对多个探测器进行光线追迹。Light Expert工具可以即时过滤3D视…...

C#学习笔记3:Windows窗口计时器

今日继续我的C#学习之路&#xff0c;今日学习自己制作一个Windows窗口计时器程序&#xff1a; 文章提供源码解释、步骤操作、整体项目工程下载 完成后的效果大致如下&#xff1a;&#xff08;可选择秒数&#xff0c;有进度条&#xff0c;开始计时按钮等&#xff09; &#xf…...