vimrc 记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 """"插件"""" call plug#begin('~/.vim/plugged') Plug 'preservim/nerdtree' Plug 'Valloric/YouCompleteMe' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'Yggdroot/LeaderF', {'do': ':LeaderfInstallCExtension'} call plug#end() set tags=tags; "F2打开和关闭NERDTree" map <F2> :NERDTreeToggle<CR> let NERDTreeWinSize=30 "YCM配置" let g:ycm_global_ycm_extra_conf='~/.vim/plugged/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py' let g:ycm_add_preview_to_completeopt = 0 let g:ycm_show_diagnostics_ui = 0 let g:ycm_server_log_level = 'info' let g:ycm_min_num_identifier_candidate_chars = 2 let g:ycm_collect_identifiers_from_comments_and_strings = 1 let g:ycm_complete_in_strings=1 let g:ycm_key_invoke_completion = '<c-z>' set completeopt=menu,menuone noremap <c-z> <NOP> let g:ycm_semantic_triggers = { \ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'], \ 'cs,lua,javascript': ['re!\w{2}'], \ } """"""""""""""" "" 通用设置 """"""""""""""" set nocompatible filetype on set t_Co=256 set autoread set autowrite set number syntax on set showcmd set encoding=utf-8 filetype indent on set autoindent set tabstop=4 set shiftwidth=4 set expandtab set softtabstop=4 set hlsearch "不同模式光标样式" let &t_SI.="\e[5 q" "SI = INSERT mode let &t_SR.="\e[4 q" "SR = REPLACE mode let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE) "括号补全" inoremap ( ()<ESC>i inoremap ) <c-r>=ClosePair(')')<CR> inoremap [ []<ESC>i inoremap ] <c-r>=ClosePair(']')<CR> inoremap " ""<ESC>i inoremap ' ''<ESC>i inoremap { {}<ESC>i " { 后快速回车 ==> 带缩进的花括号" inoremap {<CR> {<CR>}<ESC>O function! ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endfunction inoremap jk <ESC>
2022年12月2日
几乎有两个月没有更新博客,最近也是发生了一些事情打乱了节奏。10月16号因家里原因回去了一趟,然后健康宝弹窗导致无法返京,一直延误到11月8日后返京。后续在学校隔离了一周,好不容易在学校待了两周时间,遇上疫情大肆扩散,目前又出来到了威海出差,又是隔离5天,等事情办完应该就回家了。
这段时间最大的感受是有些无力,很多事情无法改变甚至无法预知,只能随着时间去见证、去经历,但不管怎么说,还是要继续努力。
2022年10月6日
使用 Hexo 框架发现它只是将生成的 Public/ 文件夹下的文件上传至 git 服务器,这样的话写作的源文件和主题文件等没有被git管理。导致换了电脑或者想在多台电脑同时写博客同步困难。
目前的解决方法是在原来的 git 服务器上创建一个新的分支(和原来管理 Public/ 文件夹静态文件的 master
分支没有关系),我将这个分支取名为 hexo-source
,这样的话就可以将源文件也使用 git 服务器管理了。
以后在一台新的电脑写博客的时候,只需要将仓库 clone 下来,然后切换到hexo-source
分支写作。完成之后不仅需要将 Public/ 文件夹上传:
还要将源文件同步至远程的hexo-source
分支:
1 git add . & git commit -m"description" & git push origin hexo-source
在新机器上写作前也注意需要先将远程分支同步到本地:
2022年9月23日
昨天遇到一个教科书级的 bug, 一下没有反映过来,花了几个小时终于找到原因了。是一个用 C 语言写的嵌入式代码,函数传入一个结构体变量的地址,需要对结构体内变量赋值:
1 2 3 4 5 6 7 8 struct Example { uint8 a; uint16 b; uint32 c; .... } void fill (struct Example* output, struct p* input) ;
由于需要对input
中的每个字节进行单独的操作,这段程序对结构体成员也使用数组的方式来赋值:
1 2 *((uint8 *)output) = 0x9; *(uint16 *)(((uint8 *)output) + 1) = 288;
我一开始实在是没有反应过来,认为 C 语言只要对指针灵活应用,这样强转也是可以取到对的值的。结果总是有些变量赋值没法赋上去。
这里就是教科书级的错误,编译器会在结构体中补充字节使其对齐,所以对结构体不能像数组一样访问内部成员。
2022年6月29日
被自己蠢哭了,做 Lab 的时候一下子没有反映过来运行时栈是向下增长的,为了使用户线程运行在单独的栈中,需要在上下文切换之前将栈指针设置到线程栈:
1 2 3 t->context.ra = (uint64)func; t->context.sp = (uint64)t->stack + STACK_SIZE;
导致内存错乱了,debug就是灾难。
2022年6月23日
已经因为疫情被封了 50 多天了,何时有转机?
2022年5月11日
又是一个离谱的bug,在使用springBoot开发完成时,使用maven将其打包成jar包,执行的时候一直报错:大概意思是说无法解析mybatis的mapper文件,但我仔细确认过打包出来的jar包中是有这些xxMapper.xml的。
我全局配置文件中关于mybatis是这样配置的:
1 2 3 4 mybatis: configuration: map-underscore-to-camel-case: true mapper-locations: classpath:/mapper/**
后来将mapper-locations改成如下就成功了,太坑了。
1 2 3 4 mybatis: configuration: map-underscore-to-camel-case: true mapper-locations: classpath:/mapper/**.xml
2022年5月4日
使用vue开发的项目上线的时候,记得将所有console.log
的调试信息输出取消掉。
2022年4月22日
今天向自己的git服务器clone下来仓库并修改之后,提交不上去,说是 Permission Denied。
1 git clone xiaodongfan.com:/....
后面找了很久错误才发现忘了在地址前加上用户了git@xiaodongfan.com:/...
。
2022年4月12日
今天在数组排序上遇到一个问题,当使用Arrays.sort()
进行排序时,可以传入一个Comparator
来指示排序规则,当我想要使用以下代码进行排序时,编译器一直报错:
1 2 int [][] arr = new int [][]{{1 ,2 }, {2 , 3 }, {2 , 5 }, {3 , 1 }};Arrays.sort(arr, Comparator.comparing(a -> a[1 ]).thenComparing(b -> b[1 ]));
Comparator.comparing()
方法接收一个「值提取器」,因为是一个函数式接口,所以我提供一个lambda表达式,后面的thenComparing()
方法也一样。
但编译不通过,最终,需要给lambda表达式参数加上参数类型才通过:
1 2 int [][] arr = new int [][]{{1 ,2 }, {2 , 3 }, {2 , 5 }, {3 , 1 }};Arrays.sort(arr, Comparator.comparing((int [] a) -> a[1 ]).thenComparing(b -> b[1 ]));
2022年4月8日
今天开发Vue时发现了一个神奇的事情:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 async created ( ) { await this .getBlog() }, mounted ( ) { Prism.highlightAll() this .$formula(this .$refs.contentRef) }, methods : { async getBlog ( ) { const {data : res} = await this .$http.get(`public/blog/${this .$route.params.blogId} ` ) console .log(res) if (res.meta.status === 200 ) { this .blog = res.data } else { this .$message.error('获取博客数据失败:' , res.meta.msg) } } },
以上代码我在created钩子中向服务器获取数据,然后再mounted钩子中拿到dom元素进行部分修改(将代码和公式格式化),结果就是不成功。
后面发现在Vue中,created和mounted钩子执行并不具有严格的顺序,也就是说可能还未获取到后台数据,这里就执行了mounted里头的操作。
最后解决的办法是直接将上述操作转移到created钩子里去,通过关键字await
来保证异步任务执行完:
1 2 3 4 5 6 7 8 9 async created ( ) { await this .getBlog() Prism.highlightAll() this .$formula(this .$refs.contentRef) }, mounted ( ) {},
2022年4月7日
近期一直在开发自己的个人博客网站,所以博客更新要缓一缓。
2022年3月11日
匹配邮箱的正则表达式:
1 ^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+
匹配手机号的正则表达式:
1 ^[1][3,4,5,7,8][0-9]{9}$
2022年2月19日
SpringMVC框架注解开发时,使用的Spring框架版本为5.2.19出现以下错误:
1 ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet
原因为jdk版本过高(开发jdk版本为17),生成的目标字节码版本过高,通过Settings->Build,Execution,Deployment->Java compiler修改目标字节码版本为jdk 8;问题解决。
2022年2月15日
假期要结束了,准备返校。
2022年1月16日
放寒假回家的第一天。
2022年1月12日
Markdown中插入表格,以及对齐方式。
1 2 3 4 | 标题 | 标题 | 标题 | | :------| ------: | :------: | | 左对齐 | 右对齐 | 这是一个长文本 | | 这是一个长文本 | 这是一个长文本 | 居中对齐 |
标题
标题
标题
左对齐
右对齐
这是一个长文本
这是一个长文本
这是一个长文本
居中对齐
2022年1月6日
springframework的maven依赖(导入这个之后会将springframework需要的依赖导入):
1 2 3 4 5 6 <dependency > <groupId > org.springframework</groupId > <artifactId > spring-webmvc</artifactId > <version > 5.2.19.RELEASE</version > </dependency >
自动装配要求xml文件增加以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns ="http://www.springframework.org/schema/beans" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context ="http://www.springframework.org/schema/context" xsi:schemaLocation ="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd" > <context:annotation-config /> </beans >
2022年1月1日
新年快乐!愿接纳自己,不惧成长。
2021年12月
进入考期了,每次考期复习总是让我难以静下心来干别的事情,希望早点考完 `(>﹏< )′