Bunny-hopping is an exploit to trick the game to make it believe that you are still within the air; then you combine it with a technique known as air strafing as the main way to gain speed. So if you want to learn bunny-hopping, the first step is to learn air strafing. So what is air strafing? Air strafing is the technique of combining the strafe keys and mouse movements to change your direction in mid-air while gaining speed. So, for example, if you were air strafing left, you would hold down a, and vice versa. Now that we know what air-strafing is, lets learn how to trick the game into thinking your still in the air when jumping. Its simple to be honest, the thing you gotta do is make a scrollwheel bind. You can do this in two ways.
So if your wondering "why do i need a new bind to jump wtf. I'll just use my space bar xd" the reason is so you can buffer the scroll wheel while mid air to make it easier to trick the game. It is possible to do this with a space bar, but if you actually want to bhop efficiently, don't waste your time. At least for me :p.
So now that we've got everything set up, we gotta learn about strafing. As said before strafing is when you move your mouse in the direction that your strafe key is. For example: if you move your mouse left, press a. So when you strafe there are many patterns to strafe. Which are demonstrated in the videos below. (The videos linked below are from aimer ^^ thx dood)
Beginner hops
Advance hops