水平移动

回忆上节课内容

  • 根据扩展名我们可以设置某些特定类型文件的配置
  • 相关文件类型的设置放在相应的文件夹里
  • 文件类型缩进文件夹

    • /usr/share/vim/vim81/indent/
  • 文件类型语法高亮文件夹

    • /usr/share/vim/vim81/syntax/
  • 文件类型插件文件夹

    • 系统通用文件夹

      • /usr/share/vim/vim81/ftplugin/java.vim
      • /usr/share/vim/vim81/ftplugin/java_xxx.vim
      • /usr/share/vim/vim81/ftplugin/java/xxx.vim
    • 用户专用插件文件夹

      • ~/.vim/ftplugin/java.vim
      • ~/.vim/ftplugin/java_def.vim
      • ~/.vim/ftplugin/java/header.vim
  • 在 文件夹~/.vim/ftplugin中 的 html.vim 的设置

    • 只针对 html
    • 包括文件的缩进、配色、语法高亮、行号、状态栏等
  • :filetype indent on 文件类型缩进生效
  • :filetype syntax on 文件类型语法高亮生效
  • :filetype plugin on 文件类型插件生效

素材文件

  • 首先我们打开一个绕口令

    • git clone http://github.com/overmind1980/vimtutorial.git
    • vi -u NONE raokouling.txt
    • 打开绕口令
    • 需要单行的长度超过 80 个字符
  • 设置不换行

    • :set nowrap
  • 设置状态条

    • :set statesline=%f-[%l,%c]
    • :set laststatus=2
  • 把模式设置为非兼容

    • :set nocompatible

横向滚动

  • 一路l 到屏幕的尽头
  • 到 [1,80] 时候再按下 l
  • 整个屏幕发生横向滚动
  • 然后光标移动到屏幕中心位置
  • 光标坐标显示为 [1,81]
  • 如果要回来的话也需要移动到左边缘
  • 然后再按 h️
  • 整个屏幕滚动回来了

  • 反复横跳

横滚幅度

  • 横滚的幅度可以通过 sidescroll 来控制

    • 默认 0 是横向屏幕 80 字符的一半 40 字符
    • 如果我设置为 10 的话
    • 在最右边缘再向右的话,屏幕位置滚动 10 个字符
    • 从 [1,80] 到 [1,81] 的时候发生
  • :h sidescroll

  • 我们如果把 sidescroll 变成 1,屏幕横滚就会很柔和
  • 还是设置回10吧
  • 反复横跳

横滚留位

  • 每次我们的横滚都是在屏幕边缘发生的
  • 能否到达边缘之前就能看见那边有什么?
  • :h sidescrolloff

    • 默认是 0,到边缘才滚动
    • 如果我们设置为 20
    • 到 [1,60] 的时候,距离有边缘有 20
    • 这个时候 l️整个屏就会向右滚动幅度
    • 也就是 sidescroll 所对应的 10

  • sidescrolloff 设置成 99,光标在横向总在中心位置

横滚屏快键

  • 其实横向滚动我们用的比较少
  • 但在一屏中滚动比较常见

屏内跳转

  • 可以参照全屏跳转
  • 前面加个 g

    • g0 就是跳到屏幕第一个字符
    • g^ 就是本屏幕内第一个非空字符
    • gm 跳到屏幕中间
    • gM 跳到整个文本中间
    • g$ 跳到屏幕末尾

自动换行

  • 如果一行太长了我们可以让他 :set wrap 自动换行
  • :h wrap 可以查看帮助手册
  • :set nowrap 可以取消自动换行

向上一行

  • 我们一般用 j、k 上下移动
  • 但是如果自动换行之后,这上下就不只是一行了
  • 先把行号显示出来 :set nu
  • 我们可以通过 g j、g k 来自动换行的一行内上下移动

换行字符

  • 我在行头句尾的时候
  • 如果我想按方向键 h、l 换行

    • 结果是有效的
  • 如果我用 BackSpace

    • 结果是有效的
  • 但是有的机器上,却无效
  • 为什么呢?
  • 这是一个属性option

    • whichwrap
  • 先看看这个东西现在的值

    • :set whichwrap?

  • 把他设置回默认的值

    • :set whichwrap&
    • & 表示设置为默认值
    • 然后再观察现状

  • b,s 是什么意思呢

选项细节

  • :h 'whichwrap'

  • 默认只有两个

    • b 是 <BackSpace> 退格
    • s 是 <Space> 空格
  • 理论上h、l 不好使
  • vi oeasy.java

    • 重新用vi打开
    • h、l 好使
    • 那他是在那里设置了 h、l 呢?

查找根源

vim ~/.vimrc
  • /whichwrap

总结

  • 我们这次了解了横向滚动的相关信息

    • 横滚幅度 - sidescroll
    • 横滚留位 - sidescrolloff
    • 自动换行 - wrap
  • g j、g k 可以逐行上下移动
  • 可以控制切换行的控制键 whichwrap
  • 这就是横向移动的内容
  • 不过程序中一般一行不会超过80个字符
  • 纵向移动更为普遍
  • 纵向移动有什么好玩的吗?
  • 下次再说

oeasy教您玩转vim - 28 - 水平移动的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. 20220314线上panic总结

    panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentatio ...

  2. 腾讯蓝鲸平台部署v5.1版本[去坑]

    腾讯蓝鲸平台部署 1. 环境准备 #1. 基础优化 ulimit -SHn 655360 yum remove mysql-devel -y && yum install mysql- ...

  3. c++从零实现reactor高并发服务器!!!

    环境准备 linux虚拟机 安装升级c/c++编译器 gcc/g++ 选项 源代码文件1 源代码文件2 ... 源代码文件n -o指定输出的文件名(不能和源文件同名 默认是a.out) -g调试 -O ...

  4. NOIP模拟60

    T1 整除 解题思路 答案就是 n 的每一个质因数的合法的答案数相乘(证明的话就....) 但是复杂度显然不允许(虽然我们可以给指数取模水过去).. 可以用积性筛(线性筛)利用质数筛出 \(x^m\) ...

  5. 7.28考试总结(NOIP模拟26)[神炎皇·降雷皇·幻魔皇]

    或许只需一滴露水,便能守护这绽放的花朵. 前言 疯狂挂分,本来T2是想用树状数组优化一下的不知道为啥后来看了一下就少看了一层循环, 然后就想,我都 n 的复杂度了,足以搞过第一问了,还优化啥呀.... ...

  6. 深入解读Prometheus Adapter:云原生监控的核心组件

    本文详述了Prometheus Adapter的部署与配置,通过三个实践案例展示其在Kubernetes环境中的应用,帮助用户实现基于自定义指标的自动扩展和跨集群统一监控. 关注作者,分享AI全维度知 ...

  7. koishi机器docker搭建

    硬件要求: 可用内存:1G以上 存储空间:1G以上 cpu:不限制 配置: 在docker的存储空间目录建立koishi文件夹 下载docker镜像 koishijs/koishi 建立容器,具体设置 ...

  8. SQL 如何去掉字段中千位的逗号(比如set @= '1,320.00' 想得到@= '1320.00' )

    1/去掉字段里的逗号.(比如set @= '1,320.00' 想得到@= '1320.00' )UPDATE table SET fieldA = REPLACE(fieldA, ',', '') ...

  9. 跨域iframe 配置fullscreen权限

    在新版本的 Chrome 等浏览器中,默认情况下禁止了跨域 iframe 开启全屏的权限.在 iframe 中,我们通常使用 element.requestFullscreen() 方法来进行全屏展示 ...

  10. IDEA环境编译Spring源码

    一.下载源码 1.官网下载 官网地址 如下图 2.github git下载 github地址 如下图 3.gitee git下载(国内推荐使用) gitee地址 如图 查看对应的gradle版本 在下 ...