vim写程序常用技巧

Vim编辑器常用命令汇总 vim编辑器的常用命令,快捷键汇总 阅读详情

   1.我们可以使用gf快捷键来进入任意一个被#include <header.h>的头文件.

       2.使用ctrl+O来回到使用gf之前的文件中。

   3.找到的一个不错的vimrc修改了一下可以自动更新ctags文件

   4.增加了对系统头文件进行ctrl+]来查找的功能

   5.增加了对splint进行代码检查的快捷键映射

   6.如果想编译时自动定位到出错的地方,那么写一个Makefile,然后在vim中执行make应该是个不错的主意,我想!

   7. 此文件在~/.vimrc或/etc/vim/vimrc


"Set mapleader
let g:mapleader = ","

set nocompatible

set backspace=indent,eol,start

"显示行号
set nu

"打开语法高亮
syntax on
"let asmsyntax="gas"
let asmsyntax="nasm"
"设置字体
set guifont=DejaVu\ Sans\ Mono\ 12

"设置缩进
set softtabstop=8
set shiftwidth=8
set expandtab

"关闭toolbar
set guioptions-=T

"关闭自动备份
set nobackup

"自动格式化
set formatoptions=tcrqn

"在行和段开始处使用制表符
set smarttab

"在normal模式下使用系统剪贴板
"set clipboard+=unnamed

"自动缩进设置
set cindent
set smartindent
set incsearch
set autoindent
set cinoptions=:0
"Show matching bracets
set showmatch

"Get out of VI's compatible mode
set nocompatible

"Have the mouse enabled all the time
set mouse=a

"Set to auto read when a file is changed from the outside
set autoread

"Enable filetype plugin
filetype plugin indent on

"设置配色方案为torte
"colo torte
colo desert
"colo tango
"设置支持的文件编码类项,目前设置为utf-8和gbk两种类型
set fenc=utf-8
set fileencodings=utf-8,chinese,gb18030,gbk,gb2312,cp936
set enc=utf-8
let &termencoding=&encoding


"设置断词
set linebreak

"设置搜索结果高亮显示
set hlsearch

"设置记录的历史操作列表
set history=200

"设置折叠
set foldenable
set foldcolumn=2
set foldlevel=3

"打开目录时不显示隐藏目录和文件
let g:netrw_hide= 1
let g:netrw_list_hide= '^\..*'

"AutoCommand
" 鼠标跳到上次关闭时,编辑的位置
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
"新建.c,.h.cpp,.sh,.java,.php,.py文件自动打开Taglist
autocmd BufNewFile *.[ch],*.cpp,*.sh,*.java,*.php,*.py exec ":call SetTitle()"
"读入.c,.h.cpp,.sh,.java,.php,.py文件自动打开Taglist
"autocmd BufRead *.[ch],*.cpp,*.sh,*.java,*.php,*.py exec ":Tlist"
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
"如果是新建的php文件,则自动定位到最后第二行
autocmd BufNewFile *.php normal k

"写入.c,.h.cpp,.sh,.java,.php,.py文件自动更新ctags
autocmd BufWrite *.[ch],*.cpp,*.sh,*.java,*.php,*.py exec ":!ctags -R *"
"
"读入python文件,设置缩进格式
autocmd BufNewFile,BufRead *.py set cinwords=if,elif,else,for,while,try,expect,finally,def,class

"读入C文件,设置折叠方式为syntax
autocmd BufNewFile,BufRead *.[ch],*.cpp set foldmethod=syntax

"读入其它文件,设置折叠方式为indent
autocmd BufNewFile,BufRead *.py,*.sh,*.java,*.php set foldmethod=indent

"设置Java代码的自动补全
autocmd FileType java setlocal omnifunc=javacomplete#Complete
"autocmd FileType java set tags=./tags,./../tags,./../../tags

"设置输入代码的自动补全
"autocmd BufEnter * call DoWordComplete()

"设置当回复邮件时自动定位到最后一行
autocmd BufRead /tmp/mutt-* normal G
"autocmd BufRead /tmp/mutt-* normal $ 
"绑定自动补全的快捷键<C-X><C-O>到<leader>;
imap <leader>; <C-X><C-O>

"绑定复制到系统剪贴板快捷键
vmap <leader>c "+y
nmap <leader>c "+y

"绑定粘贴系统剪贴板内容快捷键
"imap <leader>v <ESC>"+p "不设置insert模式下的快捷键,因为会造成无法输入,v
vmap <leader>v <ESC>"+p
nmap <leader>v "+p

"设定开关Taglist插件的快捷键为F4,可以在VIM的左侧栏列出函数列表等
map <F4> :Tlist<CR>

"设置程序的运行和调试的快捷键F5和Ctrl-F5
map <F5> :call CompileRun()<CR>
map <C-F5> :call Debug()<CR>
"设置手动更新tags文件
map <F8> :!ctags -R * <CR>
map <F9> :!splint % <CR>
"设置tab操作的快捷键,绑定:tabnew到<leader>t,绑定:tabn, :tabp到<leader>n,
"<leader>p
map <leader>t :tabnew<CR>
map <leader>n :tabn<CR>
map <leader>p :tabp<CR>

"设置空格键开关折叠
nmap <SPACE> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

"使用<leader>r打开上次运行的命令
nmap <leader>r :<UP>

"用cscope支持
set csprg=/usr/bin/cscope
let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
"默认打开Taglist
let Tlist_Auto_Open=1

"设置搜索的tags文件范围
set tags=./tags,./../tags,./../../tags,/usr/include/tags,/usr/src/linux-3.2.6/include/tags

"使用<leader>e打开当前文件同目录中的文件
if has("unix")
        map <leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
else
        map <leader>e :e <C-R>=expand("%:p:h") . "\" <CR>
endif

"定义CompileRun函数,用来调用进行编译和运行
func CompileRun()
        exec "w"
        "C程序
        if &filetype == 'c'
                exec "!gcc % -g -o %<"
                exec "!./%<"
                "Java程序
        elseif &filetype == 'java'
                exec "!javac %"
                exec "!java %<"
                "php程序
        elseif &filetype == 'php'
                exec "!php %"
                "bash程序
        elseif &filetype == 'sh'
                exec "!bash %"
                "python程序
        elseif &filetype == "python"
                exec "!python %"
        endif
endfunc
"结束定义CompileRun

"定义Debug函数,用来调试程序
func Debug()
        exec "w"
        "C程序
        if &filetype == 'c'
                exec "!gcc % -g -o %<"
                exec "!gdb %<"
                "Java程序
        elseif &filetype == 'java'
                exec "!javac %"
                exec "!jdb %<"
                "Php程序
        elseif &filetype == 'php'
                exec "!php %"
                "bash程序
        elseif &filetype == 'sh'
                exec "!bash -x %"
                "python程序
        elseif &filetype == 'python'
                exec "!pdb %"
        endif
endfunc
"结束定义Debug

"定义函数SetTitle,自动插入文件头
func SetTitle()
        "如果文件类型为.sh文件
        if &filetype == 'sh' || &filetype == 'python'
                call setline(1, "\#========================================================================")
                call append(line("."), "\# Author: findstr")
                call append(line(".")+1, "\# Email: findstr@sina.com")
                call append(line(".")+2, "\# File Name: ".expand("%"))
                call append(line(".")+3, "\# Description: ")
                call append(line(".")+4, "\#   ")
                call append(line(".")+5, "\# Edit History: ")
                call append(line(".")+6, "\#   ".strftime("%Y-%m-%d")."    File created.")
                call append(line(".")+7, "\#========================================================================")
                call append(line(".")+8, "")
                "其它程序文件
        else
                call setline(1, "/**")
                call append(line("."), "=========================================================================")
                call append(line(".")+1, " Author: findstr")
                call append(line(".")+2, " Email: findstr@sina.com")
                call append(line(".")+3, " File Name: ".expand("%"))
                call append(line(".")+4, " Description: (C)  ".strftime("%Y-%m"). "  findstr")
                call append(line(".")+5, "   ")
                call append(line(".")+6, " Edit History: ")
                call append(line(".")+7, "   ".strftime("%Y-%m-%d")."    File created.")
                call append(line(".")+8, "=========================================================================")
                call append(line(".")+9, "**/")
                call append(line(".")+10, "")
        endif
        "如果为php文件,添加相应头和尾
        if &filetype == 'php'
                call append(0, "<?php")
                call append(line("$"), "?>")
        endif
        "如果为sh文件,添加相应的头
        if &filetype == 'sh'
                call append(0, "\#!/bin/bash")
                "如果为python文件,添加相应的头和编码设定
        elseif &filetype == 'python'
                call append(0, "\#!/usr/bin/python")
                call append(1, "\# -*- coding: utf-8 -*-")
        endif
endfunc


基于STM32F407与AD9910/AD9959的高频可调DDS信号源设计与实战 本文详细介绍了基于STM32F407微控制器与AD9910/AD9959高性能DDS芯片的高频可调信号源设计与实现。文章从DDS原理入手,阐述了双芯片方案的优势,并重点分享了高频电路设计中的电源、PCB布局布线等关键硬件设计技巧与避坑指南。同时,提供了通过SPI配置DDS芯片及利用Matlab生成任意波形的软件驱动方法,旨在帮助开发者打造一个覆盖10Hz至4200MHz的实用信号发生器。 阅读详情

相关推荐

思澈sdk-新建lcd

co5300至此有3个同ID的驱动,在co5300xxxx.c的LCD_DRIVER_EXPORT(co5300, LCD_ID, &lcdc_int_cfg, &CO5300_drv, LCD_PIXEL_WIDTH, LCD_PIXEL_HEIGHT, 2);2 在customer\peripherals\Kconfig_lcd中添加如下配置(注意修改的地方有两个LCD_USING_TFT_CO5300_143)5 在该文件中的config LCD_DPI配置项下添加:(这里300为DPI)

gongyuan073的专栏 1390

Vim技能修炼教程(3) - 语法高亮进阶

语法高亮进阶 首先我们复习一下上节学到的三个命令: syntax match用于定义正则表达式和规则的对应 highlight default定义配色方案 highlight link将正则规则和配色方案对应起来 但是,定义好了规则,如何让它自动生效呢?我们需要识别文件类型。 识别文件类型 我们创建一个新插件,建立一个ftdetect目录,然后为这个...

weixin_34319999的博客 244

APB Timer验证环境搭建——学习笔记(6)

(1)为RELOAD VALUE配置初始值32'h8000_0000,设定边界值32'h4000_0000,可以看到减到想要的边界值的时候,counter重新加载RELOAD VALUE,重新开始计数;这根线,统计等待到中断的次数,与理论值做。(2)设定Reload value。(1)由于counter。recount总共次数;

qq_41651535的博客 497

自己用的vim配置

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 显示相关 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "set s

Miracle_mumu的专栏 457

高通QCS2290 SecureBoot全流程实战:从密钥生成到NON-HLOS.bin生成

本文详细拆解了高通QCS2290平台SecureBoot安全启动技术的端到端实战流程。从开发环境搭建、RSA密钥对生成与证书链构建,到关键XML配置文件修改、固件编译与数字签名,最终完成NON-HLOS.bin集成打包,为嵌入式开发者提供了一份清晰、可操作的安全启动部署指南。

weixin_28273593的博客 299

Multisim实战:5分钟搞定一阶RC电路仿真(附示波器波形分析技巧)

本文通过Multisim软件,详细演示了如何快速搭建一阶RC电路并进行仿真分析。文章提供了从元件选取、电路连接、虚拟示波器设置到波形观测的完整流程,并重点分享了测量时间常数、区分电路响应类型等核心分析技巧,帮助电子工程初学者和爱好者高效掌握电路仿真与分析方法。

weixin_29175469的博客 183

vim使用过程中遇到的一系列问题

1.为什么我输入不了,逗号和\反斜杠啊?可是我看别人的代码里面明明在用这个符号做命令啊?     答案:往往提这样的问题的朋友一定是刚接触vim而且用过了很多:冒号开头的命令了,想当然的就以为逗号和反斜杠也是这样输入进去的,可往往在输入时却会发现根本打不进去,其实, \这两个符号的使用不像:冒号这样是直接在命令模式下输入的,而是需要你按住之后再输入你的命令,比如在我的.vimrc文件中有这么一条

Kien Shin的专栏 2260

ARM芯片内部的高速公路:手把手教你用AMBA Designer配置NIC-400互连控制器

本文详细介绍了如何使用AMBA Designer工具配置ARM芯片中的NIC-400互连控制器,涵盖从基础拓扑构建到高级QoS设置的完整流程。通过实际案例演示,帮助开发者掌握AXI协议下的高效片上网络设计,提升SoC性能与能效比。

weixin_26750481的博客 313

一个比较全的vim命令

撰写于 2013 年 03 月 12 日 | 没有评论 跳跃指令 (jumps) 跳跃指令类似于游览器中的按钮 CTRL-] -> 跟着link/tag转入 (follow link/tag) CTRL-o -> 回到上一次的jump (go back) CTRL-i -> 跳回下一个 (go forward) :ju -> 显示所有的可以跳跃的地方 (print ju

Pegasus (http://ningning.today) 2364

分类模型AUC低于0.5?5个常见坑点排查指南(附代码示例)

本文针对分类模型AUC低于0.5的常见问题,提供了5个关键排查点及代码示例。从样本分布失衡、特征与标签脱节到量纲差异、模型初始化和数据泄露,详细解析了可能导致AUC异常的原因,并给出实用的诊断方法和解决方案,帮助开发者快速提升模型性能。

weixin_29190169的博客 240

Day 01: 与Python的第一次亲密接触

环境搭建 、第一个程序 Hello, World!、以及Python之禅 (The Zen of Python) 的解读。

杨小扩的博客 220

vim常用命令总结

文章目录vi/vim 常用命令总结1. vi/vim的工作模式切换2. vim命令键盘图3. 常用命令模式命令3.1 切换行、页面3.2 查找、替换3.3 删除3.4 复制剪切粘贴常用复制剪切粘贴命令4. 常用底线命令行模式命令4.1 撤销参考文献 vi/vim 常用命令总结 vim是经典的文本编辑器,可以进行高效的程序开发。本文对常用命令进行整理。 1. vi/vim的工作模式切换 基本上 vi/vim 共分为三种模式1,分别是命令模式(Command mode),输入模式(Insert mode)和底线

Hello,Sunpro! 1万+

YOLOv8【第十一章:视频追踪与流处理篇·第6节】BoT-SORT 改进:结合相机运动补偿(CMC)提升追踪稳定性!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 718

Vim 的常用技巧及配置,高效运维之 Vim 模板

在编程世界中,Vim不仅仅是一个文本编辑器,它是一把钥匙,开启了高效编程的大门。对于初学者来说,Vim那复杂多变的操作模式和键盘快捷键可能令人望而却步。然而,一旦掌握,你会发现编辑文本从未如此高效。本文将带你深入Vim的常用技巧、个性化配置以及如何通过Vim提升Ansible运维的效率。

云端梦留白的博客 2099

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Vim编辑器常用命令

Vim编辑器 安装Vim请参考文章: 如何在Windows10上安装Vim 本文参考文章: 1. Vim编辑器 2. Linux Vi/Vim 文章目录Vim编辑器Vim简介Vim的6种基本模式1. 普通模式2. 插入模式3. 可视模式4. 选择模式5. 命令行模式6. Ex模式模式的切换最后 Vim简介 Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增...

zhang_yu_ling的博客 5万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

linux常用终端指令+如何用vim写一个c程序并运行

在装好ubuntu之后今天学习了一些linux的一些基础知识: windows里面打开命令窗口是win+r,在linux系统里面,ctrl+alt+t打开终端,今天的一些指令都是围绕终端来说的 首先sudo apt install tree 这个语句的意思就是安装tree这个软件,这个程序是linux软件包里自带的,用于查看电脑的文件分布情况 然后说一些常用的命令: cd+要打开的文件名表...

HJY 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Vim常用操作及使用技巧

title: Vim常用操作及使用技巧 date: 2019-08-19 20:18:37 tags: Linux categories: 运维 早期版本:vi Vim常用操作 Vim是一个功能强大的全屏幕的文本编辑器,是Linux/UNIX上最常用的文本编辑器,他的作用是建立、编辑、显示文本文件。 VIm 没有菜单,只有命令 vim常用命令 编辑模式常用命令 a 在光标所在字符后插入 A...

ZzZzZzZ 377

Vim常用快捷键及实用技巧

如果你是一个程序员,相信你一定知道Vim,你可以不用,但大神都会用。 一句话总结Vim : 代码(文本)编辑功能强大,命令繁多。   以下是一些Vim常用快捷键及实用技巧: 一、移动光标 h,j,k,l 上,下,左,右 ctrl + e 移动页面 move : 移动 ctrl + b 上翻一页 back :后退 ctrl + f 下翻一页 front :前面的 ctrl + u 上翻半页...

优快云_Mr_H的博客 4995

Linux生产环境上,最常用的一套“vim“技巧【动画演示】

动画演示vim最常用的技巧。这篇文字非常受欢迎,现在分享给大家。

小姐姐味道 3248

vim编辑器的常用技巧

vim编辑器的常用技巧 文章目录vim编辑器的常用技巧前言Vi的使用vi的三种模式常用按键说明Vim额外功能多文件编辑多窗口编辑参考文章 前言 我们在使用 Windows 系统时,如果想要更改一些文件的内容,我们通常会以记事本格式(即 txt 格式)打开文件,往里面写入或修改一些内容,记事本就是我们常用的一款文件编辑器。同样地,在 Linux 系统下,我们也需要一款文本编辑器来编辑文件的内容。 Linux 系统在命令行模式下的文本编辑器是非常多的,比如 nano、pico、vim等。这其中最重要的,最需要掌

qq_42582489的博客 658

vim常用快捷键问答

vim常用快捷键汇总

捕鲸叉的专栏 1243

VIM学习二之linux下常用VIM技巧

目录引子vim的特点注意事项常用操作鼠标移动普通模式下操作复制y粘贴p删除d剪切查找取消操作可视化模式可视化块模式命令模式常用操作其他操作参考 引子 研发线上使用最多的编辑器,就是vi。无论是最快查看某个文件内容,还是快速编辑某个文件,vi都能帮上忙。 软件世界貌似有一些非常长寿的东西,vi算是一个。本篇文章聚焦的是研发线上最常用的一些功能。至于安装插件,写一些脚本,那一般是在开发机上玩的;生产环境没有条件、也没有时间忍受你做这些增强。希望看完本文,能够对这款神器有一个大体印象。当然,熟练的使用还需要日常有

legend050709的专栏 862

Vim安装配置和常用技巧精选

本文旨在用最简短语言介绍Vim最实用的技巧。帮助Linux/Unix开发者快速掌握它。要想深入研究Vim的使用,大家可以参考Vim官方网站:http://www.vim.org 本文不断修改中,任何问题大家都可以在下面留言。 第一章:安装: 在命令行运行vim,如果找不到程序,需要自己安装。 1.1 下载 从官方网站ftp://ftp.vim.org/pub/vim/un

leiminghany的专栏 1698

知道了这些vim编辑器使用小技巧可以让你写代码的速度直接飞起

这篇文章详细给大家介绍一下Vim编辑器,相信对你非常有用,快来一起学习一下吧!讲解的非常详细

让技术没有门槛 1713

Vim入门技巧&常用命令整理

Vim操作指南 操作环境:CentOS7.7 vim :7.4.629

Jack魏 23万+

Vim编辑器的常用指令大全

《Vim指令终极指南:从零精通编辑器王者》一文系统整理Vim高频核心指令,助你彻底摆脱“只会按i和Esc”的尴尬!文章深度解析7大指令模块:从模式切换(Normal/Insert/Visual)、光标闪电定位(hjkl进阶组合技)、文本高效增删改(dd/y/p高阶用法),到全局搜索替换(:%s魔法)、多窗口分屏协作,覆盖90%开发场景需求。

m0_73874169的博客 1598
上一篇: cortex-m3中存储器的访问属性中的共享属性
下一篇: ramdisk与 initrd、initramfs的关系
findstr
博客等级 码龄19年 63粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值